{"id":13469196,"url":"https://github.com/terminusdb/terminusdb","last_synced_at":"2025-05-14T06:13:11.992Z","repository":{"id":37348602,"uuid":"198466472","full_name":"terminusdb/terminusdb","owner":"terminusdb","description":"TerminusDB is a distributed, collaborative database designed for building, sharing, versioning, and reasoning on structured data.","archived":false,"fork":false,"pushed_at":"2025-05-06T20:15:45.000Z","size":13844,"stargazers_count":2928,"open_issues_count":25,"forks_count":114,"subscribers_count":38,"default_branch":"main","last_synced_at":"2025-05-06T20:23:25.898Z","etag":null,"topics":["acid","cms","collaboration","database","document-database","graph-database","headless","headless-cms","immutable","knowledge-graphs","linked-data","nosql","open-source","opensource","revision-control","terminusdb"],"latest_commit_sha":null,"homepage":"https://terminusdb.org","language":"Prolog","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":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.MD","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-23T16:15:27.000Z","updated_at":"2025-05-06T20:15:41.000Z","dependencies_parsed_at":"2024-02-04T18:06:36.314Z","dependency_job_id":"5786aa44-656c-4643-a665-f8f22b0d7e17","html_url":"https://github.com/terminusdb/terminusdb","commit_stats":null,"previous_names":[],"tags_count":100,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terminusdb%2Fterminusdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terminusdb","download_url":"https://codeload.github.com/terminusdb/terminusdb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254081253,"owners_count":22011590,"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":["acid","cms","collaboration","database","document-database","graph-database","headless","headless-cms","immutable","knowledge-graphs","linked-data","nosql","open-source","opensource","revision-control","terminusdb"],"created_at":"2024-07-31T15:01:28.879Z","updated_at":"2025-05-14T06:13:11.982Z","avatar_url":"https://github.com/terminusdb.png","language":"Prolog","readme":"\u003cimg\n  src=\"https://github.com/terminusdb/terminusdb-web-assets/blob/master/readmes/terminusdb/TerminusDB-Logo-Colour_3.png\"\n  alt=\"TerminusDB Logo\"\n  width=\"30%\"\n  align=\"center\"\n/\u003e\n---\n\n[![Native Build](https://github.com/terminusdb/terminusdb/actions/workflows/native-build.yml/badge.svg?branch=main\u0026event=push)](https://github.com/terminusdb/terminusdb/actions/workflows/native-build.yml)\n[![AMD64 Docker Build](https://github.com/terminusdb/terminusdb/actions/workflows/docker-amd64-build.yml/badge.svg?branch=main)](https://github.com/terminusdb/terminusdb/actions/workflows/docker-amd64-build.yml)\n[![ARM64 Docker Build](https://github.com/terminusdb/terminusdb/actions/workflows/docker-arm64-build.yml/badge.svg?branch=main)](https://github.com/terminusdb/terminusdb/actions/workflows/docker-arm64-build.yml)\n[![Issues](https://img.shields.io/github/issues/terminusdb/terminusdb)](https://github.com/terminusdb/terminusdb/issues)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n\u003c!--\n[![CI](https://github.com/terminusdb/terminusdb/actions/workflows/ci.yml/badge.svg?event=push)](https://github.com/terminusdb/terminusdb/actions/workflows/ci.yml) \n--\u003e\n\n## TerminusDB is a distributed database with a collaboration model.\n\nIt is designed to be like git, but for data. If you find this project useful, please consider **starring the repo**.\n\nThe building blocks of the model are:\n\n  - Revision Control: commits for every update\n  - Diff: differences between commits can be interpreted as patches between states\n  - Push/Pull/Clone: communicate diffs between nodes using push / pull / clone\n  - Query: You can query any state of the database at any commit.\n\nTerminusDB allows you to link JSON documents in a knowledge graph through a [document API](https://terminusdb.org/docs/document-insertion).\n\nNote that documentation is now maintained at [https://terminusdb.org/docs/](https://terminusdb.org/docs/) and is no longer available at terminusdb.com, which is currently experiencing issues.\n\n### TerminusDB Version 11\n\n[TerminusDB 11](https://github.com/terminusdb/terminusdb/releases/tag/v11.0.0) features a new Rustified storage backend that reduces storage overhead and latency, improves search performance, and simplifies interchange. TerminusDB 11 also comes with some exciting features to make building easier and faster -\n\n- [GraphQL](https://terminusdb.org/docs/graphql-basics) - Use GraphQL as a proper graph query language with deep link discover and path queries\n- Added `@unfoldable` document flag to frames - Making data curation easier by unfolding subdocuments within a frame to add all relevant data in one place\n- Add `@metadata` to frames - Include additional metadata to document frames including data formatted as Markdown.\n\n\n## Installation Guide\n\n[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/terminusdb)\n\nThe easiest way to install TerminusDB as a developer is by using the [Snap](https://snapcraft.io/terminusdb). It does not provide a daemon and is mainly intended for developers that want to try TerminusDB.\n\nFor deployments:\n\n1. Add the following to a `.env` file in the source directory:\n\n```shell\n# Database administrator's password (required)\nTERMINUSDB_ADMIN_PASS=\n\n# OpenAI API key (optional)\nOPENAI_KEY=\n\n# Optional: Number of pages to buffer for the vector database\nBUFFER_AMOUNT=120000\n```\n\nNotes:\n * TERMINUSDB_ADMIN_PASS is mandatory and must be set.\n * OPENAI_KEY is optional. Without it, AI-based indexing will be disabled. All core document graph database functionality will still work normally.\n\n2. `docker compose up`\n\nYou should be able to view TerminusDB running by default at `localhost:6363`\n\n\u003e If you're installing TerminusDB on Windows with Docker, our friends at DFRNT wrote this [comprehensive guide](https://dfrnt.com/blog/2023-02-25-run-terminusdb-on-windows-with-docker/).\n\nYou can also install TerminusDB from the [Source Code](https://terminusdb.org/docs/install-terminusdb-from-source-code).\n\n\n## TerminusDB CLI\n\nA simple example creating a person with friends can be created as follows:\n\n```shell\nterminusdb db create admin/example1\nterminusdb doc insert --graph_type=schema admin/example1 \u003c\u003cEOF\n{ \"@id\" : \"Person\",\n  \"@type\" : \"Class\",\n  \"name\" : \"xsd:string\",\n  \"occupation\" : \"xsd:string\",\n  \"friends\" : { \"@type\" : \"Set\",\n                \"@class\" : \"Person\" }}\nEOF\nterminusdb doc insert admin/example1 --message='adding Gavin' \u003c\u003cEOF\n{ \"@type\" : \"Person\",\"name\" : \"Gavin\", \"occupation\" : \"Coder\"}\nEOF\n```\n\n## Community\n\nCome visit us on [Discord](https://discord.gg/yTJKAma)\n\n## Documentation\n\nCheck out our documentation site for more information: [TerminusDB documentation](https://terminusdb.org/docs/get-started-with-terminusdb/) website.\n\nWe are working hard to improve our docs - if you see an issue, please open an issue in the [documentation repo](https://github.com/terminusdb/terminusdb-docs).\n\nWhite paper on our [delta-encoding approach](https://terminusdb.org/blog/succinct-data-structures-for-modern-databases/) to data management.\n\nCheck the [Python Client](https://pypi.org/project/terminusdb-client/) 🐍. Or the [JavaScript Client](https://github.com/terminusdb/terminusdb-client) 🌐.\n\nWOQL is a powerful query language that allows you to express complex patterns over arbitrary data structures concisely. What makes it so expressive and easy to use is the [radical simplicity of the core underlying concepts](https://terminusdb.org/blog/the-power-of-web-object-query-language/).\n\n## Changes in this Version\n\n[Release Notes](docs/RELEASE_NOTES.md)\n\n## Copyright\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n```\nhttp://www.apache.org/licenses/LICENSE-2.0\n```\n","funding_links":[],"categories":["Prolog","TerminusDB","Model, Data and Experiment Management","database","Database","Graph databases"],"sub_categories":["Vectors"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterminusdb%2Fterminusdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterminusdb%2Fterminusdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterminusdb%2Fterminusdb/lists"}