string-interner
                                
                                
                                
                                    string-interner copied to clipboard
                            
                            
                            
                        A data structure to efficiently intern, cache and restore strings.
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 allocatios 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.