go

module
v0.2.11 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2026 License: MIT

README

Dodder

A distributed knowledge management system implementing Git-like version control for Zettelkasten-style note-taking.

Overview

Dodder provides a content-addressable storage system with an append-only object graph that enables multiple versions of knowledge objects to coexist and satisfy concurrent dependency graphs. Built in Go, it offers cryptographic signing and verification of objects across distributed repositories, ensuring data integrity and authenticity in collaborative environments.

Key Features

  • Versioned Knowledge Storage: Append-only object graph with content-addressable storage supporting concurrent version histories
  • Cryptographic Security: Object signing and verification across repositories with ZSTD compression and Age encryption support
  • Advanced Querying: Sophisticated search capabilities including tags, types, full-text search, and embedded Lua scripting
  • Optimized Performance: Custom binary index format with highly-optimized IO operations and pool-based memory management
  • Distributed Architecture: HTTP/Unix socket API server supporting mTLS, remote synchronization, and cross-repository operations
  • Familiar Interface: Git-style CLI commands (clone, push, pull, diff, checkout) with shell completion support

Architecture

The system employs a highly-modular architecture with strict dependency layering, enabling clean separation of concerns and maintainable code. The custom binary index format and optimized IO subsystem ensure efficient handling of large knowledge bases while maintaining fast query performance.

Testing

Comprehensive test coverage through Go unit tests and BATS integration testing framework ensures reliability and correctness of distributed operations.

Directories

Path Synopsis
cmd
dagnabit command
der command
der-next command
dodder command
dodder-gen_man command
internal
0/dodder_env
Package dodder_env holds dodder-flavored constants and configuration bundles consumed by env_dir construction sites.
Package dodder_env holds dodder-flavored constants and configuration bundles consumed by env_dir construction sites.
0/hyphence
Package hyphence is dodder's facade over the external hyphence format library (github.com/amarbel-llc/hyphence/go/hyphence), pre-filling madder's TypeStruct / markl.Id into the library's four leading generic type parameters (T, PT, D, PD).
Package hyphence is dodder's facade over the external hyphence format library (github.com/amarbel-llc/hyphence/go/hyphence), pre-filling madder's TypeStruct / markl.Id into the library's four leading generic type parameters (T, PT, D, PD).
0/orgmode_peg
Code generated by langlang (a701a99503836215476330c6259ed00ec288bf9a commit hash), DO NOT EDIT.
Code generated by langlang (a701a99503836215476330c6259ed00ec288bf9a commit hash), DO NOT EDIT.
alfa/blech32
Package blech32 is a modified version bech32 backage which itself is a modified version of the reference implementation of BIP173.
Package blech32 is a modified version bech32 backage which itself is a modified version of the reference implementation of BIP173.
alfa/mcp_tool_perms
Package mcp_tool_perms is the single source of truth for how each dodder MCP tool may affect the store.
Package mcp_tool_perms is the single source of truth for how each dodder MCP tool may affect the store.
bravo/claude_hooks
Package claude_hooks implements the Claude Code hook protocol for the dodder clown plugin (#244).
Package claude_hooks implements the Claude Code hook protocol for the dodder clown plugin (#244).
bravo/repo_id
Package repo_id holds dodder-side helpers for the FDR-0019 repo location selector.
Package repo_id holds dodder-side helpers for the FDR-0019 repo location selector.
echo/object_fmt_digest
framework for generating digests from objects according to specific formats
framework for generating digests from objects according to specific formats
kilo/orgie
Package orgie implements the organize-text format: a hierarchical, tag-headed text view of tagged/typed objects that round-trips through an editor (or, since #7, the MCP organize_plan/organize_commit tools) to apply bulk tag/description/move changes.
Package orgie implements the organize-text format: a hierarchical, tag-headed text view of tagged/typed objects that round-trips through an editor (or, since #7, the MCP organize_plan/organize_commit tools) to apply bulk tag/description/move changes.
sierra/remote_proto
Package remote_proto implements the dodder remote transfer protocol (drtp), specified in docs/rfcs/0004-remote-transfer-protocol.md.
Package remote_proto implements the dodder remote transfer protocol (drtp), specified in docs/rfcs/0004-remote-transfer-protocol.md.
internal_experimental
lib
0/bech32
Package bech32 is a modified version of the reference implementation of BIP173.
Package bech32 is a modified version of the reference implementation of BIP173.
0/iso_duration
Package iso_duration parses the date-only subset of ISO-8601 durations (PnY nM nW nD) and advances a YYYY-MM-DD date by such a duration.
Package iso_duration parses the date-only subset of ISO-8601 durations (PnY nM nW nD) and advances a YYYY-MM-DD date by such a duration.
bravo/script_config
TODO rename this to something clearer
TODO rename this to something clearer

Jump to

Keyboard shortcuts

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