|
| 1 | +<div align="center"> |
| 2 | + |
| 3 | +English | [简体中文](./README_CN.md) |
| 4 | + |
| 5 | +# PyFastUtil |
| 6 | + |
| 7 | +[//]: # ( <p>) |
| 8 | + |
| 9 | +[//]: # ( <!--suppress CheckImageSize -->) |
| 10 | + |
| 11 | +[//]: # ( <img src="./mascot.png" alt="Project Mascot" width="320">) |
| 12 | + |
| 13 | +[//]: # ( </p>) |
| 14 | + |
| 15 | +## Make Python Fast Again |
| 16 | + |
| 17 | +[](LICENSE) |
| 18 | +[](https://img.shields.io/github/issues/Nova-Committee/CheatDetector) |
| 19 | +[](https://github.com/xia-mc/PyFastUtil/actions) |
| 20 | + |
| 21 | +</div> |
| 22 | + |
| 23 | +## Introduction |
| 24 | + |
| 25 | +**PyFastUtil** is a high-performance utility library for Python, inspired by the popular [FastUtil](https://fastutil.di.unimi.it/) library in Java. However, **PyFastUtil is not a Python binding of any existing library**, but a **complete re-implementation** from scratch, designed to bring the same efficiency and functionality to Python. |
| 26 | + |
| 27 | +> **Note**: PyFastUtil is still in its **early development phase**. The codebase is under active development and is not yet ready for production use. We are working hard to make it feature-complete and thoroughly tested before releasing it on PyPI. |
| 28 | +
|
| 29 | +### Features |
| 30 | + |
| 31 | +- Implements all corresponding Python data structure interfaces, while providing significant performance improvements through targeted optimizations. Users can choose the most suitable data structure for their specific needs. |
| 32 | +- Fully implemented in C/C++, leveraging hardware-specific optimizations such as SIMD to maximize the performance of data structures. |
| 33 | +- Offers efficient Python bindings for certain C APIs, allowing advanced users to perform low-level, "unsafe" operations when needed. |
| 34 | + |
| 35 | +## Installation |
| 36 | + |
| 37 | +Currently, **PyFastUtil** is not available on PyPI. You will need to **clone the repository** and build it from the source code. |
| 38 | + |
| 39 | +### Build from source |
| 40 | + |
| 41 | +1. Clone the repository: |
| 42 | + ```bash |
| 43 | + git clone https://github.com/yourusername/PyFastUtil.git |
| 44 | + cd PyFastUtil |
| 45 | + ``` |
| 46 | + |
| 47 | +2. Build the project: |
| 48 | + - On **Windows**: |
| 49 | + ```bash |
| 50 | + build.cmd |
| 51 | + ``` |
| 52 | + - On **Linux/macOS**: |
| 53 | + ```bash |
| 54 | + ./build.sh |
| 55 | + ``` |
| 56 | + |
| 57 | +> **Note**: Future releases will be available on PyPI once the project is feature-complete and well-tested. |
| 58 | + |
| 59 | +## License |
| 60 | + |
| 61 | +This project is licensed under the **Apache License 2.0**. See the [LICENSE](LICENSE) file for more details. |
| 62 | + |
| 63 | +## Roadmap |
| 64 | + |
| 65 | +- [ ] Implement core data structures (e.g., fast lists, maps, sets). |
| 66 | +- [ ] Provide SIMD and inline assembly bindings for Python. |
| 67 | +- [ ] Thorough testing and benchmarking. |
| 68 | +- [ ] PyPI release. |
| 69 | + |
| 70 | +## Contributing |
| 71 | + |
| 72 | +Contributions are welcome! Feel free to submit issues or pull requests. Please note that the project is in an early stage, and we appreciate any feedback or suggestions. |
0 commit comments