Skip to content

Repository layout

This diagram maps the repository’s executable, implementation, client, automation, test, and documentation directories.

flowchart TB
  Repository["Amaquet repository"]

  Repository --> Cmd["cmd/"]
  Cmd --> Server["amaquet/"]
  Cmd --> CLI["amaquet-cli/"]
  Cmd --> Keygen["amaquet-keygen/"]
  Cmd --> Restore["amaquet-restore/"]

  Repository --> Internal["internal/"]
  Internal --> Admin["admin/"]
  Internal --> Compression["compression/"]
  Internal --> Config["config/"]
  Internal --> Core["core/"]
  Internal --> Persistence["persistence/"]
  Internal --> Protocol["protocol/"]
  Internal --> Security["security/"]
  Internal --> TCPServer["server/"]
  Internal --> Types["types/"]

  Repository --> Package["pkg/amaquet/"]
  Repository --> Scripts["scripts/"]
  Repository --> Tests["tests/"]
  Repository --> Docs["docs/"]
  Docs --> AstroConfig["astro.config.mjs"]

The cmd directory contains the server, CLI, identity generator, and offline restore executables. internal contains the HTTP administration API and state, compression, configuration, sharded core engine, append-only persistence, protocol framing, identity, TCP dispatch, and concrete data structures. pkg/amaquet is the public Go client; scripts, tests, and docs contain project automation, integration coverage, and the Astro/Starlight documentation site respectively.

The internal boundary prevents external Go packages from depending directly on implementation details. Public applications should use pkg/amaquet or implement the Amaquet protocol.