FishDB

module
v0.0.0-...-03faf57 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 3, 2025 License: MIT

README

FishDB Logo

FishDB

Under Development · Lightweight, Embeddable, and Distributed Graph Database for AI


Overview

FishDB is a lightweight, embeddable, and distributed graph database written in Go, designed for high-performance Retrieval-Augmented Generation (RAG) applications.
It aims to be the fastest graph-naïve versioned database, offering a powerful way to store, query, and manage evolving graph data.


Features

  • Graph-based Data Model – Store data as nodes and edges, with built-in versioning support.
  • RAG-Optimized Performance – Ultra-fast retrieval for AI & LLM-powered applications.
  • Naive Versioning – Efficiently manage and query multiple versions of graph data.
  • Multiple Access Methods
    • RESTful API
    • GraphQL API (with subscriptions)
  • Clustering & Distribution – Scale horizontally with multi-node clusters.
  • Flexible Storage
    • In-memory mode for blazing speed
    • Disk-based mode for persistence
  • Interactive CLI Console – Manage and query the database directly from the terminal.

Getting Started

Prerequisites

  • Go 1.12+

Build from Source

# Clone repository
git clone https://github.com/Fisch-Labs/FishDB.git
cd FishDB

# Tidy dependencies
go mod tidy

# Build binary
go build ./cli/fishdb.go

Run FishDB

Disk-based storage

./fishdb server -db-path /path/to/your/db

In-memory mode

./fishdb server -mem

Note: The server runs on HTTPS by default on port 9090. The API endpoints are rooted at /db. For example, to access the info endpoint, use https://localhost:9090/db/v1/info.


Usage

REST API

Endpoints are available in the api/v1 directory.

GraphQL

Query and mutate graph data via /db/graphql.

Interactive Console

./fishdb console

Manage users, run queries, and explore FishDB interactively.


Contributing

Contributions are welcome!

  • Open an issue to discuss new ideas or report bugs.
  • Submit PRs for fixes or new features.

License

FishDB is licensed under the MIT License.


Directories

Path Synopsis
api
Package api contains general REST API definitions.
Package api contains general REST API definitions.
ac
Package ac contains management code for access control.
Package ac contains management code for access control.
v1
Package v1 contains FishDB REST API Version 1.
Package v1 contains FishDB REST API Version 1.
Package cluster contains FishDB's clustering code.
Package cluster contains FishDB's clustering code.
manager
Package manager contains the management code for FishDB's clustering feature.
Package manager contains the management code for FishDB's clustering feature.
Package console contains the console command processor for FishDB.
Package console contains the console command processor for FishDB.
Package ecal contains the main API for the event condition action language (ECAL).
Package ecal contains the main API for the event condition action language (ECAL).
dbfunc
Package dbfunc contains FishDB specific functions for the event condition action language (ECAL).
Package dbfunc contains FishDB specific functions for the event condition action language (ECAL).
eql
Package eql contains the main API for EQL.
Package eql contains the main API for EQL.
interpreter
Package interpreter contains the EQL interpreter.
Package interpreter contains the EQL interpreter.
parser
Package parser contains the EQL parser.
Package parser contains the EQL parser.
Package graph contains the main API to the graph datastore.
Package graph contains the main API to the graph datastore.
data
Package data contains classes and functions to handle graph data.
Package data contains classes and functions to handle graph data.
graphstorage
Package graphstorage contains classes which model storage objects for graph data.
Package graphstorage contains classes which model storage objects for graph data.
util
Package util contains utility classes for the graph storage.
Package util contains utility classes for the graph storage.
Package graphql contains the main API for GraphQL.
Package graphql contains the main API for GraphQL.
interpreter
Package interpreter contains the GraphQL interpreter for FishDB.
Package interpreter contains the GraphQL interpreter for FishDB.
Package hash provides a HTree implementation to provide key-value storage functionality for a StorageManager.
Package hash provides a HTree implementation to provide key-value storage functionality for a StorageManager.
Package server contains the code for the FishDB server.
Package server contains the code for the FishDB server.
Package storage contains the low-level API for data storage.
Package storage contains the low-level API for data storage.
file
Package file deals with low level file storage and transaction management.
Package file deals with low level file storage and transaction management.
paging
Package paging contains functions and constants necessary for paging of records.
Package paging contains functions and constants necessary for paging of records.
paging/view
Package view contains general page view constants and functions.
Package view contains general page view constants and functions.
slotting
Package slotting contains managers which deal with slots on pages.
Package slotting contains managers which deal with slots on pages.
slotting/pageview
Package pageview contains object wrappers for different page types.
Package pageview contains object wrappers for different page types.
util
Package util contains utility functions for slot headers.
Package util contains utility functions for slot headers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL