Skip to content

Repository files navigation

rust-stm

This repository is a Rust workspace for Software Transactional Memory (STM) implementations.

STM provides a composable alternative to regular synchronization mechanisms for concurrent operations; It is based on two primitives: transactions and transactional variables.

Users who wish to familiarize themselves with the mechanism can skim through the following documents:

Workspace structure

  • fast-stm - performance-focused STM implementation forked from Marthog's original stm crate.
  • sserp-stm - STM implementation using the SSER+ algorithm from Boosting transactional memory with stricter serializability.
  • benches - internal Criterion benchmark harness used to compare STM implementations and synchronization primitives.

Each published crate has its own README:

Development

Run the published crates' test suites:

cargo test -p fast-stm -p sserp-stm

Build package documentation:

cargo doc --workspace --no-deps

Run benchmarks for one STM implementation at a time:

cargo bench --features fast-stm
cargo bench --features sserp-stm

The benchmark crate requires exactly one of the fast-stm or sserp-stm features.

License

Licensed under either of:

at your option.

Contribution

Contributions are welcome and accepted as pull requests on GitHub. Feel free to use issues to report bugs, missing documentation or suggest improvements of the project.

About

Software Transactional Memory implementations for Rust

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages