ChemFST
ChemFST is a high-performance chemical name search library using Finite State Transducers (FSTs) for efficient search and autocomplete of chemical compound names. The project provides both a native Rust library and Python bindings.
- Rust library: Fast, memory-efficient, and suitable for large-scale chemical name search and autocomplete.
- Python bindings: Easy integration with Python projects, powered by the same Rust core.
For detailed usage, API reference, and in-depth explanations, please see the ChemFST Documentation (mdBook).
Development
Project Structure
src/– Rust library source codepython/– Python bindings and packagingdocs/– Documentation (mdBook sources)tests/– Integration and unit tests
Local Setup
Rust
- Install Rust (1.56.0 or higher).
- Clone the repository:
- Build the project:
- Run tests:
Python
- Requires Python 3.11 or higher.
- Install maturin for building the Python bindings:
- Build and install the Python package:
- Run Python tests:
Continuous Integration
- GitHub Actions workflows for both Rust and Python ensure cross-platform compatibility and code quality.
- See
.github/workflows/for workflow definitions.
Contributing
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch:
- Make your changes and add tests.
- Run all tests to ensure nothing is broken.
- Commit and push your changes.
- Open a Pull Request.
License
For all usage instructions, API details, and advanced topics, please visit the ChemFST Documentation (mdBook).