A lightweight, embeddable property graph engine with a fluent query DSL.

Why KnitKnot?

Most graph databases are heavy and complex. KnitKnot is different:

  • CLI-first: Query interactively like SQLite
  • Fluent DSL: Write expressive queries: Find('User').Has('skill', 'Go')
  • Embeddable: Use as a Go library or standalone tool
  • File-based: No server needed — data saved to .gob

Quick Start

Install via Go:

go install github.com/aprksy/knitknot@latest

Start the REPL:

knitknot repl

Run your first query:

knitknot> Find('User').Has('has_skill', 'Go')

Features

REPL Shell

Interactive exploration with history, syntax highlighting, and EXPLAIN.

Custom Verbs

Define your own semantics: DEFINE teaches TO Course VIA code

Persistence

Save/load full state including verbs and subgraphs.

Visualize

Export to DOT format and render with Graphviz.

Interactive Syntax Demo

Try editing the query below and see it in action:

Find('User').Where('n.age', '>', 30).Limit(5)

Project Status

KnitKnot is currently in MVP stage and is in heavy development in every part

Get Involved

KnitKnot is open-source and welcomes contributions!

View Source

Explore the codebase and understand how it works.

Browse Code →

Report Issues

Found a bug? Let us know!

Report Bug →

Contribute

Help make KnitKnot better for everyone.

Contribute →