/pyrpds

Python Wrapper for Rust Persistent Data Structures

Primary LanguagePythonMozilla Public License 2.0MPL-2.0

Build Status Crates.io PyPI

Python Wrapper for Rust Persistent Data Structures

pyrpds is a library which provides CPython bindings to Rust's rpds library.

The project has 2 goals:

  • Allow packages that are built on top of rpds to expose Python bindings easily.
  • Provide faster drop-in replacements for pyrsistent data structures.

Python API will be exactly the same as pyrsistent API.

Installation Instructions

For Users

Python

pip install pyrpds

Rust

Add following lines to Cargo.toml:

[dependencies.pyrpds]
version = "<version>"

For Contributors

Installing Dependencies

Install Rust and Conda.

Installing nightly Rust

rustup install nightly
rustup override set nightly

Installing Conda environment

conda env create -f environment.yaml

Installing pyrpds

conda activate pyrpds
maturin develop

Testing pyrpds

conda activate pyrpds
pytest