8 releases

✓ Uses Rust 2018 edition

new 0.2.4 Aug 20, 2019
0.2.3 Aug 18, 2019
0.1.1 Feb 19, 2019
0.1.0 Jan 9, 2019
0.0.1 Dec 7, 2018

#40 in Concurrency

Download history 4362/week @ 2019-05-07 5214/week @ 2019-05-14 4592/week @ 2019-05-21 5312/week @ 2019-05-28 5208/week @ 2019-06-04 5098/week @ 2019-06-11 4771/week @ 2019-06-18 5385/week @ 2019-06-25 4835/week @ 2019-07-02 5071/week @ 2019-07-09 5300/week @ 2019-07-16 5405/week @ 2019-07-23 5550/week @ 2019-07-30 6071/week @ 2019-08-06 7144/week @ 2019-08-13

23,022 downloads per month
Used in 2 crates

MIT license

97KB
2.5K SLoC

Loom

Loom is a model checker for concurrent Rust code. It exhaustively explores the behaviors of code under the C11 memory model, which Rust inherits.

Build Status

Documentation

Getting started

To use loom, first add this to your Cargo.toml:

[dev-dependencies]
loom = "0.2.4"

Next, create a test file.

Implementation

Loom is an implementation of techniques described in CDSChecker: Checking Concurrent Data Structures Written with C/C++ Atomics.

Limitations

While already very useful, loom is in its early stages and has a number of limitations.

  • Execution is slow (#5).
  • The full C11 memory model is not implemented (#6).
  • No fence support (#7).
  • No bounding support (#8).

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in loom by you, shall be licensed as MIT, without any additional terms or conditions.

Dependencies

~140–780KB
~17K SLoC