Boxology
Boxology is an early-stage framework for building software as independent boxes that humans define and agents implement. Humans own box boundaries, typed interfaces, data models, and allowed connections; implementations can evolve behind compatible contracts.
V0 was completed on 2026-08-09. The accepted stream specs describe its delivered boundary. Applications built with Boxology are separate products and are not included in this repository.
Boxology 0.1.1 tools are published on crates.io. Building this checkout requires Rust 1.97.1.
Quick start
Install the initializer and checker from crates.io, then initialize an existing empty target
directory (a lone .git is allowed):
Update with cargo install --force boxology-init --locked and
cargo install --force boxology-cli --locked; add --version 0.1.1 to pin this release.
To install directly from the source repository instead:
The generated project README owns that project's invocation contract.
Hand-managed boxes may name their generated contract dependency after the domain instead of using
a framework-shaped Cargo alias. Put the selected Rust crate name at the start of contract.rs:
contract!
and use the same key in Cargo.toml, for example
review_contract = { package = "review-contract", path = "../generated/contract" }. Omitting
contract_crate preserves the generated-project default, boxology_generated_contract. When a
project-local name is selected, pass the same name to the implementation attribute:
Release procedure
Run cargo xtask ci --base origin/main, then cargo xtask release preflight. Preflight checks the
exact 0.1.1 closure and order, inspects every crate's planned file inventory (including README and
both licenses), and creates, verifies, and inspects the real dependency-free root .crate. It does
not claim to package dependent crates: Cargo requires their predecessors to be visible on crates.io.
Configure Cargo's crates.io credentials securely, then publish exactly the next crate shown by the
order using BOXOLOGY_RELEASE_PUBLISH=1 cargo xtask release publish <crate-name>. Each invocation
recognizes the already-visible prefix, rejects gaps or an out-of-order name, runs a real crates.io
publish dry-run, and publishes only that crate. Wait for it to become visible before invoking the
next. After the sequence, prove fresh registry installs with the Quick start commands and smoke-test
boxology --help plus an initialized project. Tag the proven release commit and create its GitHub
Release only after that registry smoke test passes. Tests and preflight never publish.
Documentation
See the changelog for release history and known boundaries. Start with the concise white paper, then use its linked sections to open the detailed documents. The product contract separates long-term direction from the completed foundation milestone.
- Boxes
- Packages, providers, and compositions
- Runtime
- Contract evolution and deprecation
- Software factory
- Quality and authority
- Product contract and foundation milestone
- Rust build topology
- Canonical capability contract
- V0 streams
License
Boxology is dual-licensed under MIT or Apache License 2.0, at your option.
Contributing and security
See CONTRIBUTING.md before proposing a change and SECURITY.md before reporting a vulnerability. Community participation is governed by the Contributor Covenant.