explaingit

aymanhs/nanotdb

Analysis updated 2026-05-18

102GoAudience · developerComplexity · 3/5Setup · moderate

TLDR

A small, append-only time series database built for low-power hardware like Raspberry Pi, with automatic rollup summaries for fast queries over long time ranges.

Mindmap

mindmap
  root((NanoTDB))
    What it does
      Time series storage
      Append-only writes
      Automatic rollups
      HTTP server
    Tech stack
      Go
      Plain file storage
      TOML config
    Use cases
      Raspberry Pi sensors
      IoT gateways
      Long-range queries
    Design
      Write-ahead log
      Compressed data pages
      Multiple isolated databases

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Store sensor readings from Raspberry Pi or IoT devices without needing a full database server.

USE CASE 2

Query long time ranges of sensor data quickly using automatic hourly or daily rollup summaries.

USE CASE 3

Run an embedded time series database with no external dependencies on resource constrained hardware.

What is it built with?

Go

How does it compare?

aymanhs/nanotdbawuqing/backupxbjarneo/kli
Stars1029692
LanguageGoGoGo
Setup difficultymoderateeasymoderate
Complexity3/53/53/5
Audiencedeveloperops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Pre-built binaries exist for Raspberry Pi and ARM64, other platforms require compiling from source.

No license information is stated in the README.

In plain English

NanoTDB is a small, lightweight database built for storing time series data, meaning measurements recorded over time such as temperature readings, sensor values, or device metrics. It is designed to run on low power, resource constrained hardware like Raspberry Pi computers and IoT gateways, with no external software dependencies required at runtime. All data is stored in ordinary files on disk under a single root directory rather than in a separate database server process. Data must arrive in time order, meaning each new reading has to be at the same time or later than the previous one for that sensor, and records are never changed after being written, only added on. This append only design is common in time series databases because sensor data naturally flows forward in time, and it keeps the storage engine simple and predictable. A notable feature is automatic rollup aggregation: as raw data comes in, the database can automatically compute summarized versions, such as hourly or daily averages, minimums, and maximums, and store them separately. This means that when you query data over a long time range, you can retrieve pre computed summaries instead of scanning thousands of individual readings, which makes queries much faster and lighter on the underlying hardware. The database is configured through simple text files and supports multiple isolated databases running inside a single engine instance, each with its own settings for retention and storage partitioning. It exposes an HTTP server for accepting incoming data and answering queries over that same connection. Pre built binaries are available for several Raspberry Pi models, including older and newer boards, and for 64-bit ARM systems, so you can download and run it directly without compiling any code yourself. Building from source is also possible for other platforms.

Copy-paste prompts

Prompt 1
Explain how NanoTDB's append-only write-ahead log and page flush process work together for crash safety.
Prompt 2
Show me the line protocol format for writing a sensor reading into NanoTDB and give three examples.
Prompt 3
How do I configure a rollup job in manifest.toml to compute hourly averages for a temperature metric?
Prompt 4
Set up NanoTDB on a Raspberry Pi 4 using the pre-built ARM binary and start ingesting sensor data.

Frequently asked questions

What is nanotdb?

A small, append-only time series database built for low-power hardware like Raspberry Pi, with automatic rollup summaries for fast queries over long time ranges.

What language is nanotdb written in?

Mainly Go. The stack also includes Go.

What license does nanotdb use?

No license information is stated in the README.

How hard is nanotdb to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is nanotdb for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.