The engine ships as 15 Rust crates on crates.io, all at a single lockstep version. Each one below says what it does and links to its registry page.
Every crate carries one job. A program written in LOGOS passes through most of them in order: the language crates read the English, the compiler lowers it, the proof crates check what the lowering claims, and the runtime crates execute the result. The kernel sits under all of that and re-derives anything the others assert.
Every published crate in the toolchain shares one version, 0.10.1, and they move together. Pulling one pulls the layer beneath it, which is why the version is lockstep rather than per crate. The source for all of them sits in one repository.
15 crates, one version
A list of every crate in the workspace, grouped by job. If you are hearing this rather than seeing it, you are the reason the aria labels on this site get written before the animations do.
These two read English and hand back logic.
logicaffeine-languageTurns English sentences into first order logic through a lexer, a parser and a semantic pipeline.
logicaffeine-language on crates.iologicaffeine-lexiconHolds the English vocabulary types and looks words up for the translator.
logicaffeine-lexicon on crates.ioOne crate carries the pipeline from analysis to emitted code.
logicaffeine-compileRuns the analysis and optimization passes, then executes a program through the interpreter, the bytecode virtual machine, or generated Rust, C and SystemVerilog.
logicaffeine-compile on crates.ioFour crates, and the smallest of them decides what the other three are allowed to conclude.
logicaffeine-kernelA small trusted Calculus of Constructions type checker that every other component re-checks its results against. The kernel has no path to the lexicon, so it never sees an English word.
logicaffeine-kernel on crates.iologicaffeine-proofSearches for proofs by backward chaining, certifies what it finds into kernel terms, and offers a hint when the search stalls.
logicaffeine-proof on crates.iologicaffeine-verifyEncodes a verification IR into the Z3 SMT solver to decide validity, equivalence and temporal properties.
logicaffeine-verify on crates.iologicaffeine-tvProves the Rust the compiler emits behaves the same as the LOGOS source that produced it.
logicaffeine-tv on crates.ioWhere a program actually runs, and how it speeds up while running.
logicaffeine-forgeThe low level JIT layer: executable memory pages, prebaked machine code stencils, and an x86-64 code generator. On every other target the crate compiles to nothing and the bytecode machine runs instead.
logicaffeine-forge on crates.iologicaffeine-jitConnects the stencil JIT to the bytecode virtual machine, so a hot loop upgrades to native code without being rewritten. Native targets only.
logicaffeine-jit on crates.iologicaffeine-runtimeDeterministic concurrency: a scheduler, channels, select, a logical clock, and seed and trace replay. A run is a function of the program and the seed, and replays bit for bit, which spares you the bug that only happens on the third Tuesday under load.
logicaffeine-runtime on crates.ioTwo crates that touch no IO, so they run anywhere the engine runs.
logicaffeine-baseThe foundation layer: arena allocation, string interning, source spans, exact numbers, units, money, time, UUIDs and hashes.
logicaffeine-base on crates.iologicaffeine-dataThe runtime value types, and the eight conflict free replicated types that converge without coordination. WASM safe, with no IO of its own.
logicaffeine-data on crates.ioOne crate holds everything that reaches outside the process.
logicaffeine-systemConsole, clock, filesystem and networking, plus the post-quantum cryptography primitives.
logicaffeine-system on crates.ioWhat a person types at, and what an editor talks to.
logicaffeine-cliThe largo command line tool, which creates, builds, runs, proves, formats and publishes LOGOS projects.
logicaffeine-cli on crates.iologicaffeine-lspThe language server that gives an editor live diagnostics, completion, hover and refactoring.
logicaffeine-lsp on crates.ioSource: API documentation for every published crate, docs.logicaffeine.com(opens in a new tab)
Every crate ships under the Business Source License 1.1, with MIT as the change license it converts to on the date the license names. The additional use grant covers individuals and organizations under twenty five people. The terms travel with the source, so the license file in the repository is the copy that governs.
Two of the runtime crates are platform bound. The forge and the JIT build on x86-64 Linux and macOS, and compile to nothing anywhere else, which leaves the bytecode machine running the program at full correctness and lower speed. The data crates perform no IO at all, so they run in a browser under WebAssembly as readily as on a server.
The Z3 backed crates sit outside a default build. A plain cargo build skips them, so no Z3 toolchain has to be present to compile the workspace.
Want to see the language these crates implement?