{"id":22151948,"url":"https://github.com/antoinegagne/a-tree","last_synced_at":"2025-10-12T14:31:06.752Z","repository":{"id":265309056,"uuid":"895748766","full_name":"AntoineGagne/a-tree","owner":"AntoineGagne","description":"A dynamic data structure for efficiently indexing arbitrary boolean expressions","archived":false,"fork":false,"pushed_at":"2025-07-28T17:50:35.000Z","size":8211,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-26T11:41:58.455Z","etag":null,"topics":["a-tree","boolean-algebra","boolean-expression","boolean-logic","data-structures","event-filtering","rust-crate","rust-lang","rust-library","scientific-paper","tree-structure"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/a-tree","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntoineGagne.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":"2024-11-28T20:22:41.000Z","updated_at":"2025-07-28T17:50:38.000Z","dependencies_parsed_at":"2025-05-20T04:35:41.594Z","dependency_job_id":null,"html_url":"https://github.com/AntoineGagne/a-tree","commit_stats":null,"previous_names":["antoinegagne/a-tree"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/AntoineGagne/a-tree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fa-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fa-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fa-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fa-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntoineGagne","download_url":"https://codeload.github.com/AntoineGagne/a-tree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineGagne%2Fa-tree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011599,"owners_count":26084964,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["a-tree","boolean-algebra","boolean-expression","boolean-logic","data-structures","event-filtering","rust-crate","rust-lang","rust-library","scientific-paper","tree-structure"],"created_at":"2024-12-02T00:39:54.800Z","updated_at":"2025-10-12T14:31:06.025Z","avatar_url":"https://github.com/AntoineGagne.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# a-tree\n\n[![Rust](https://github.com/AntoineGagne/a-tree/actions/workflows/check.yml/badge.svg)](https://github.com/AntoineGagne/a-tree/actions/workflows/check.yml)\n[![Latest version](https://img.shields.io/crates/v/a-tree.svg)](https://crates.io/crates/a-tree)\n[![Documentation](https://docs.rs/a-tree/badge.svg)](https://docs.rs/a-tree)\n[![Code Coverage](https://codecov.io/gh/AntoineGagne/a-tree/graph/badge.svg?token=JUKK1W5L2D)](https://codecov.io/gh/AntoineGagne/a-tree)\n\nThis is an implementation of the [A-Tree: A Dynamic Data Structure for Efficiently Indexing Arbitrary Boolean Expressions](https://dl.acm.org/doi/10.1145/3448016.3457266) paper.\n\nThe A-Tree data structure is used to evaluate a large amount of boolean expressions as fast as possible. To achieve this, the data structure tries to reuse the intermediary nodes of the incoming expressions to minimize the amount of expressions that have to be evaluated.\n\n## Features\n\nThis crate supports the following features:\n\n* Insertion of arbitrary boolean expressions via a domain specific language;\n* Deletion of subscriptions;\n* Export to Graphviz format;\n* Search with events for matching arbitrary boolean expressions.\n\n## Documentation\n\nThe documentation is available on [doc.rs](https://docs.rs/crate/a-tree/latest).\n\n## License\n\nThis project is licensed under the [Apache 2.0](LICENSE-APACHE) and the [MIT License](LICENSE-MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoinegagne%2Fa-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantoinegagne%2Fa-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoinegagne%2Fa-tree/lists"}