An open API service indexing awesome lists of open source software.

https://github.com/terminusdb/terminusdb

TerminusDB is a distributed, collaborative database designed for building, sharing, versioning, and reasoning on structured data.
https://github.com/terminusdb/terminusdb

acid cms collaboration database document-database graph-database headless headless-cms immutable knowledge-graphs linked-data nosql open-source opensource revision-control terminusdb

Last synced: about 1 month ago
JSON representation

TerminusDB is a distributed, collaborative database designed for building, sharing, versioning, and reasoning on structured data.

Awesome Lists containing this project

README

        

TerminusDB Logo
---

[![Native Build](https://github.com/terminusdb/terminusdb/actions/workflows/native-build.yml/badge.svg?branch=main&event=push)](https://github.com/terminusdb/terminusdb/actions/workflows/native-build.yml)
[![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)
[![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)
[![Issues](https://img.shields.io/github/issues/terminusdb/terminusdb)](https://github.com/terminusdb/terminusdb/issues)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

## TerminusDB is a distributed database with a collaboration model.

It is designed to be like git, but for data. If you find this project useful, please consider **starring the repo**.

The building blocks of the model are:

- Revision Control: commits for every update
- Diff: differences between commits can be interpreted as patches between states
- Push/Pull/Clone: communicate diffs between nodes using push / pull / clone
- Query: You can query any state of the database at any commit.

TerminusDB allows you to link JSON documents in a knowledge graph through a [document API](https://terminusdb.org/docs/document-insertion).

Note 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.

### TerminusDB Version 11

[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 -

- [GraphQL](https://terminusdb.org/docs/graphql-basics) - Use GraphQL as a proper graph query language with deep link discover and path queries
- Added `@unfoldable` document flag to frames - Making data curation easier by unfolding subdocuments within a frame to add all relevant data in one place
- Add `@metadata` to frames - Include additional metadata to document frames including data formatted as Markdown.

## Installation Guide

[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/terminusdb)

The 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.

For deployments:

1. Add the following to a `.env` file in the source directory:

```shell
# Database administrator's password (required)
TERMINUSDB_ADMIN_PASS=

# OpenAI API key (optional)
OPENAI_KEY=

# Optional: Number of pages to buffer for the vector database
BUFFER_AMOUNT=120000
```

Notes:
* TERMINUSDB_ADMIN_PASS is mandatory and must be set.
* OPENAI_KEY is optional. Without it, AI-based indexing will be disabled. All core document graph database functionality will still work normally.

2. `docker compose up`

You should be able to view TerminusDB running by default at `localhost:6363`

> 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/).

You can also install TerminusDB from the [Source Code](https://terminusdb.org/docs/install-terminusdb-from-source-code).

## TerminusDB CLI

A simple example creating a person with friends can be created as follows:

```shell
terminusdb db create admin/example1
terminusdb doc insert --graph_type=schema admin/example1 <