Skip to content
@kantandb

KantanDB

A personal learning project: a document-oriented NoSQL database designed to store and query JSON documents.

KantanDB (from the Japanese 簡単 – kantan, meaning simple) is a personal learning project: a document-oriented NoSQL database designed to store and query JSON documents.

The goal is not to create a production-ready database, but to explore how databases and web services can be designed and implemented in different programming languages.

What is KantanDB?

KantanDB is a document-oriented NoSQL database with a minimal and approachable design. Its main ideas are:

  • Buckets: Buckets act as logical containers for JSON documents. You can think of them as lightweight collections or namespaces.

  • Documents: Each document stored in a bucket is just plain JSON. Instead of requiring you to provide a key, KantanDB automatically assigns every document a unique identifier.

  • Indexes: Buckets can hold JsonPath expressions that define indexes. These indexes are evaluated against stored documents, making it possible to look them up efficiently later.

  • Queries and Transformations: You can search for documents and even reshape their data using JsonPath. This makes queries expressive without inventing a new query language.

  • API-First Design: All functionality is exposed through an OpenAPI-compliant REST interface. This means you can use standard tools to explore the API, auto-generate clients, or integrate with other services.

KantanDB is deliberately simple. It does not aim to compete with production-ready databases, but rather to highlight the core mechanics of storing, indexing, and querying documents in a way that can be reimplemented and experimented with in different programming languages.

Motivation

KantanDB exists as a study project. My motivations are:

  • To practice database design concepts from scratch.
  • To learn web service development across different programming languages.
  • To explore deployment and operational maintenance approaches.
  • To compare language idioms, libraries, and ecosystems while solving the same problem multiple times.

This is not about building “the next database,” but about understanding how one could be built.

Contribution Policy

This project is not open to external contributions.

It is a personal exploration project, so all design, code, and experimentation will remain in my control.

If you are interested, feel free to browse the code and ideas, but please do not submit pull requests or issues.

Status

Early planning and specification phase. Implementations will follow in multiple programming languages over time.

Popular repositories Loading

  1. .github .github Public

  2. kantandb.dev kantandb.dev Public

    KantanDB documentation

Repositories

Showing 2 of 2 repositories

Top languages

Loading…

Most used topics

Loading…