Alpha, incomplete test coverage, unstable, API may still change heavily.
go get github.com/stergiotis/boxer
Boxer is a collection of packages under public/. The larger subsystems:
algebraicarch/pushout— algebraic three-way merge for line-graphs via categorical pushouts:graggle/storefor the line-graph data structure,graggle/patchfor the patch DAG,envelopefor transmittable patches; the graggle and pseudo-edge constructs follow Joe Neeman's ojo design (seepushout/graggle/NOTICE); ported from pebble2impl with full history. Includes aBackendI/RepoIseam underalgebraicarch/pushout/pijulwith two realisations — a native pushout backend (no external binary) and a text backend that shells out topijul.semistructured/leeway— code-driven entity-attribute-value data model with a staged codegen pipeline (DDL / DML / read-access / streaming read-access).semistructured/markdown/obsidian— goldmark-based parser for Obsidian-flavored markdown (callouts, wikilinks, embeds, tags, highlights, frontmatter).db/clickhouse/dsl— typed ClickHouse SQL DSL with an AST, marshalling, and nanopass rewrite passes (ADR-0002, ADR-0006).streaming/persisted/kafka— embedded Kafka producer/consumer derived from Redpanda Connect's franz-go integration (ADR-0005).caching— read-through batch cache aimed at ETL / build / graph-traversal pipelines: latency-hidden via dependency accumulation and partition-aware bulk fetches, with optional disk-backed L2.analytics/similarity/compression— compression-based similarity metrics (NCD, CCC) over anyReset-able compressor.math/numerical/finddivisionsandmath/numerical/timeticks— axis-tick layout: Heckbert / Wilkinson / Talbot for numeric and log axes; a uPlot-derived calendar ladder with locale-aware boundary snapping for time axes.science/geo/h3— H3 geospatial indexing via a Rust→WASM→wazero bridge (ADR-0003); Rust source underrust/h3bridge.fec— forward error correction (e.g.fec/ea/golay24).eb,eh— structured error building and error handling.batching,containers,hashing,identity,logical,observability,parsing,slices,statespace,unsafeperf, … — utility packages.
internal/ carries vendored third-party ports.
imzero and fffi were extracted into imzero_imgui (ImZero1) and are no longer part of this module.
Boxer uses Go build tags to gate optional features, Go experiments, and AI-generated code paths. The canonical tag set lives in ./tags; pass it to every go build, go test, and go vet invocation:
go build -tags="$(cat ./tags)" ./...
go test -tags="$(cat ./tags)" ./...
go vet -tags="$(cat ./tags)" ./...
Without these tags, packages fail to compile with misleading undefined identifier errors.
Boxer follows the Diátaxis framework (ADR-0001). Docs live next to the code they describe:
- Architecture decisions —
doc/adr/records the why behind cross-cutting choices (nanopass discipline, h3 WASM bridge, license gate, Kafka port, leeway membership-role classifier, …). - Per-package docs — larger subsystems co-locate
TUTORIAL.md/HOWTO.md/EXPLANATION.md/ reference docs with their source (e.g.public/db/clickhouse/dsl/EXPLANATION.md). - Standards —
CODINGSTANDARDS.mdanddoc/DOCUMENTATION_STANDARD.md.
Boxer uses chained file extensions (e.g. file.docx.pdf.txt):
.out.<ext>- Generated source code checked into the repository, e.g.
myfile.out.go. .gen.<ext>- Source code generated during the regular build (part of the binary distribution, not the source distribution), e.g.
myfile.gen.go. .idl.go- A (Framed) Foreign Function Interface (FFI) Interface Definition Language file — a subset of the Go language.
Path specificity increases with depth. Example: ./fec/ea/golay24 —
fec is forward error correction (a well-known technical term); ea is Eingabe-Ausgabe (German for input/output, chosen to avoid clashing with stdlib io); golay24 is the specific algorithm.
Ideally the leaf package name is discriminative enough to drive IDE autocompletion.
- e2e
- End-to-end.
- ea
- Input-output (German abbreviation, to distinguish from core packages).
- fec
- Forward error correction.
- inst
- Instance (similar to self / this).
- vcs
- Version control system (git, svn, hg, perforce, …).
Third-party licenses are vetted by a CI gate that builds a CycloneDX SBOM with cyclonedx-gomod and enforces the project policy (ADR-0004). Inline ports of third-party code, the bundled h3.wasm artifact's license chain, and the gate's policy are documented in THIRD_PARTY_NOTICES.md. NOTICE carries the project's own attribution.
Currently, no third-party contributions are accepted.
Code and documentation up to commit aa78183 is 100% human-generated. Subsequent code with substantial LLM contributions is gated by llm_generated_* build tags (see Building) so AI-free builds remain possible.
The MIT License (MIT) 2023-2026 — Panos Stergiotis. See LICENSE for full terms.