{"id":13634882,"url":"https://github.com/terminusdb/terminusdb-store","last_synced_at":"2025-05-16T06:04:25.938Z","repository":{"id":39094468,"uuid":"198469764","full_name":"terminusdb/terminusdb-store","owner":"terminusdb","description":"a tokio-enabled data store for triple data","archived":false,"fork":false,"pushed_at":"2024-03-11T10:40:52.000Z","size":2076,"stargazers_count":377,"open_issues_count":27,"forks_count":33,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-05-16T06:03:51.576Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/terminusdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-23T16:35:59.000Z","updated_at":"2025-05-04T23:29:13.000Z","dependencies_parsed_at":"2023-02-12T09:15:51.720Z","dependency_job_id":"7fcc0981-0440-4a3c-a004-97e0fa9b4d90","html_url":"https://github.com/terminusdb/terminusdb-store","commit_stats":{"total_commits":743,"total_committers":14,"mean_commits":53.07142857142857,"dds":0.5935397039030956,"last_synced_commit":"1b97b795c84b0d17975cd332c5c7a4ba42a3e369"},"previous_names":[],"tags_count":68,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terminusdb","download_url":"https://codeload.github.com/terminusdb/terminusdb-store/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478186,"owners_count":22077675,"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":[],"created_at":"2024-08-02T00:00:36.815Z","updated_at":"2025-05-16T06:04:25.883Z","avatar_url":"https://github.com/terminusdb.png","language":"Rust","readme":"# terminusdb-store, a tokio-enabled data store for triple data\n\n[![Build Status](https://github.com/terminusdb/terminusdb-store/workflows/Build/badge.svg)](https://github.com/terminusdb/terminusdb-store/actions)\n[![Crate](https://img.shields.io/crates/v/terminus-store.svg)](https://crates.io/crates/terminus-store)\n[![Documentation](https://docs.rs/terminus-store/badge.svg)](https://docs.rs/terminus-store/)\n[![codecov](https://codecov.io/gh/terminusdb/terminusdb-store/branch/main/graph/badge.svg)](https://codecov.io/gh/terminusdb/terminusdb-store)\n\n## Overview\nThis library implements a way to store triple data - data that\nconsists of a subject, predicate and an object, where object can\neither be some value, or a node (a string that can appear both in\nsubject and object position).\n\nAn example of triple data is:\n````\ncow says value(moo).\nduck says value(quack).\ncow likes node(duck).\nduck hates node(cow).\n````\nIn `cow says value(moo)`, `cow` is the subject, `says` is the\npredicate, and `value(moo)` is the object.\n\nIn `cow likes node(duck)`, `cow` is the subject, `likes` is the\npredicate, and `node(duck)` is the object.\n\nterminusdb-store allows you to store a lot of such facts, and search\nthrough them efficiently.\n\nThis library is intended as a common base for anyone who wishes to\nbuild a database containing triple data. It makes very few assumptions\non what valid data is, only focusing on the actual storage aspect.\n\nThis library is tokio-enabled. Any i/o and locking happens through\nfutures, and as a result, many of the functions in this library return\nfutures. These futures are intended to run on a tokio runtime, and\nmany of them will fail outside of one. If you do not wish to use\ntokio, there's a small sync wrapper in `store::sync` which embeds its\nown tokio runtime, exposing a purely synchronous API.\n\n## Usage\nAdd this to your `Cargo.toml`:\n\n```toml\n[dependencies]\nterminus-store = \"0.19.2\"\n```\n\ncreate a directory where you want the store to be, then open that store with\n```rust\nlet store = terminus_store::open_directory_store(\"/path/to/store\").await.unwrap();\n```\n\nOr use the sync wrapper:\n```rust\nlet store = terminus_store::open_sync_directory_store(\"/path/to/store\").unwrap();\n```\n\nFor more information, [visit the documentation on docs.rs](https://docs.rs/terminus-store/).\n\nSee also the `examples/` directory for some basic examples.\n\n## Upgrading from 0.19 or earlier\nStarting with version 0.20.0, terminus-store uses a new storage format, which bundles all files into a single archive, and also supports value types. Stores created using 0.19 or earlier will not work with 0.20 or later. However, there is a conversion tool to convert existing pre-v20 stores: [terminusdb-10-to-11](https://github.com/terminusdb/terminusdb-10-to-11/).\n\n## Roadmap\n\nWe are constantly developing terminusdb-store to make it a high quality succinct graph representation versioned datastorage layer. To help facilitate understanding of our aims for this project we have laid out a [Roadmap](./docs/ROADMAP.md). If you would like to assist in the development of terminusdb-store, or you think something should be added to the roadmap please contact us.\n\n## License\nterminus-store is licensed under Apache 2.0.\n\n## Contributing\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## See also\n- The Terminus database, for which this library was written: [Website](https://terminusdb.com) - [GitHub](https://github.com/terminusdb/)\n- Our prolog bindings for this library: [terminus_store_prolog](https://github.com/terminusdb/terminus_store_prolog/)\n- The HDT format, which the terminusdb-store layer format is based on: [Website](http://www.rdfhdt.org/)\n","funding_links":[],"categories":["Applications","Rust","应用程序 Applications"],"sub_categories":["Database","数据库 Database"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterminusdb%2Fterminusdb-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterminusdb%2Fterminusdb-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterminusdb%2Fterminusdb-store/lists"}