{"id":17968690,"url":"https://github.com/robbepop/string-interner","last_synced_at":"2025-05-14T21:10:20.179Z","repository":{"id":16822718,"uuid":"80203015","full_name":"Robbepop/string-interner","owner":"Robbepop","description":"A data structure to efficiently intern, cache and restore strings.","archived":false,"fork":false,"pushed_at":"2025-04-04T15:14:12.000Z","size":3186,"stargazers_count":193,"open_issues_count":6,"forks_count":34,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-09T19:53:32.791Z","etag":null,"topics":["bidirectional","datastructures","interner","interning","mapping","rust","storage","string"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Robbepop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-01-27T11:43:06.000Z","updated_at":"2025-04-26T06:31:50.000Z","dependencies_parsed_at":"2023-02-19T02:00:32.184Z","dependency_job_id":"be4e68c8-ae28-4999-aadb-522c947216da","html_url":"https://github.com/Robbepop/string-interner","commit_stats":{"total_commits":382,"total_committers":10,"mean_commits":38.2,"dds":"0.32722513089005234","last_synced_commit":"2c9bff43263a16ce65785cd00adc010addd552a4"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robbepop%2Fstring-interner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robbepop%2Fstring-interner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robbepop%2Fstring-interner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robbepop%2Fstring-interner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Robbepop","download_url":"https://codeload.github.com/Robbepop/string-interner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254227631,"owners_count":22035671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bidirectional","datastructures","interner","interning","mapping","rust","storage","string"],"created_at":"2024-10-29T14:41:16.391Z","updated_at":"2025-05-14T21:10:15.159Z","avatar_url":"https://github.com/Robbepop.png","language":"Rust","readme":"# String Interner\n\n| Continuous Integration |     Test Coverage    |  Documentation   |       Crates.io      |\n|:----------------------:|:--------------------:|:----------------:|:--------------------:|\n| [![travisCI][1]][2]    | [![codecov][5]][6]   | [![docs][9]][10] | [![crates][11]][12]  |\n\nA data structure to cache strings efficiently, with minimal memory footprint and the ability to assicate\nthe interned strings with unique symbols.\nThese symbols allow for constant time comparisons and look-ups to the underlying interned string contents.\nAlso, iterating through the interned strings is cache efficient.\n\n[1]: https://github.com/Robbepop/string-interner/workflows/Rust%20-%20Continuous%20Integration/badge.svg?branch=master\n[2]: https://github.com/Robbepop/string-interner/actions?query=workflow%3A%22Rust+-+Continuous+Integration%22+branch%3Amaster\n[5]:  https://codecov.io/gh/robbepop/string-interner/branch/master/graph/badge.svg\n[6]:  https://codecov.io/gh/Robbepop/string-interner/branch/master\n[9]:  https://docs.rs/string-interner/badge.svg\n[10]: https://docs.rs/string-interner\n[11]: https://img.shields.io/crates/v/string-interner.svg\n[12]: https://crates.io/crates/string-interner\n\n[license-mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[license-apache-badge]: https://img.shields.io/badge/license-APACHE-orange.svg\n\n## Contributing\n\n### Testing\n\nTest the project using\n```\ncargo test --release\n```\n\n### Memory Allocation Tests\n\nTo further test memory consumption and allocations performed by the\ndifferent string interner backends test the project as follows:\n```\ncargo test --release --features test-allocations -- --test-threads 1\n```\n\n- The `--features test-allocations` enables the memory allocations tests. \n- The `--test-thread 1` argument is required for the memory allocations tests\n  since otherwise they interfere with each other causing them to randomly fail.\n- Use `--nocapture` to receive verbose output useful for debugging.\n\n### Profiling \u0026 Benchmarks\n\nBenchmark the string interner and its various backends using\n```\ncargo bench\n```\n\n## License\n\nLicensed under either of\n\n * Apache license, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Dual licence: [![badge][license-mit-badge]](LICENSE-MIT) [![badge][license-apache-badge]](LICENSE-APACHE)\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as below, without any\nadditional terms or conditions.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobbepop%2Fstring-interner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobbepop%2Fstring-interner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobbepop%2Fstring-interner/lists"}