- Rust 100%
|
Some checks failed
Rust - Continuous Integration / Build (push) Has been cancelled
Rust - Continuous Integration / Build-1 (push) Has been cancelled
Rust - Continuous Integration / Build-2 (push) Has been cancelled
Rust - Continuous Integration / Test (push) Has been cancelled
Rust - Continuous Integration / Test-1 (push) Has been cancelled
Rust - Continuous Integration / Test-2 (push) Has been cancelled
Rust - Continuous Integration / Test Memory Consumption (push) Has been cancelled
Rust - Continuous Integration / Test Memory Consumption-1 (push) Has been cancelled
Rust - Continuous Integration / Test Memory Consumption-2 (push) Has been cancelled
Rust - Continuous Integration / Formatting (push) Has been cancelled
Rust - Continuous Integration / Documentation (push) Has been cancelled
Rust - Continuous Integration / Clippy (push) Has been cancelled
Rust - Continuous Integration / Outdated (push) Has been cancelled
Rust - Continuous Integration / Audit (push) Has been cancelled
Rust - Continuous Integration / Miri (push) Has been cancelled
Rust - Continuous Integration / Coverage (push) Has been cancelled
Signed-off-by: Tin Švagelj <tin.svagelj@live.com> |
||
|---|---|---|
| .github/workflows | ||
| benches | ||
| src | ||
| tests | ||
| .gitignore | ||
| .rustfmt.toml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
| RELEASE_NOTES.md | ||
String Interner
| Continuous Integration | Test Coverage | Documentation | Crates.io |
|---|---|---|---|
A data structure to cache strings efficiently, with minimal memory footprint and the ability to assicate the interned strings with unique symbols. These symbols allow for constant time comparisons and look-ups to the underlying interned string contents. Also, iterating through the interned strings is cache efficient.
Contributing
Testing
Test the project using
cargo test --release
Memory Allocation Tests
To further test memory consumption and allocations performed by the different string interner backends test the project as follows:
cargo test --release --features test-allocations -- --test-threads 1
- The
--features test-allocationsenables the memory allocations tests. - The
--test-thread 1argument is required for the memory allocations tests since otherwise they interfere with each other causing them to randomly fail. - Use
--nocaptureto receive verbose output useful for debugging.
Profiling & Benchmarks
Benchmark the string interner and its various backends using
cargo bench
License
Licensed under either of
- Apache license, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Dual licence:

Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as below, without any additional terms or conditions.