Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/terminusdb/terminusdb

TerminusDB is a distributed database with a collaboration model
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 database with a collaboration model

Awesome Lists containing this project

README

        

TerminusDB Logo

[![CI](https://github.com/terminusdb/terminusdb/actions/workflows/ci.yml/badge.svg?event=push)](https://github.com/terminusdb/terminusdb/actions/workflows/ci.yml) [![Issues](https://img.shields.io/github/issues/terminusdb/terminusdb)](https://github.com/terminusdb/terminusdb/issues)

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

It is designed to be like git, but for data. If you are reading this, **give this repo a star**.

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.com/docs/document-insertion). TerminusDB is available as a standalone server, or you can use our headless content and knowledge management system [TerminusCMS](https://dashboard.terminusdb.com/).

### 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.com/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, or if you want to use the local dashboard:

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

```shell
OPENAI_KEY=YOUR_OPENAI_KEY_HERE
# And optionally specify number of pages for the vector database
# for instance
BUFFER_AMOUNT=120000
```

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