libLogit is easiest to understand when you think of it as one portable object model with several layers around it.
A LOGIT is a user-owned logging device.
That device owns:
The project succeeds when those ideas mean the same thing everywhere, even if the syntax around them changes from Python to C++ to JavaScript.
This is what a user imports.
Examples:
from liblogit import LOGITnew Logit()liblogit::LOGIT{}liblogit.New()Each binding must expose blank construction, startup configuration, and a way to emit a log event.
The contract is the language-agnostic meaning of the fields and operations:
namelocalPathoutputDirectorypathModeremotePathdatabasePathlevelsinksformatmetadatarotationretentionThis is the part Beta must freeze.
The config layer lets teams define many named loggers in one place.
That layer includes:
Sinks are where events go.
Current Alpha/Beta-track sink families:
The conformance layer is what keeps libLogit from drifting into eight slightly different products.
It includes:
The viewer is not separate from the SDK story. It is the proof that retained logs are useful after they are written.
The current shape is:
LOGIT writes into a bounded SQLite storeThe ideal end-to-end flow for a user looks like this:
LOGIT or load one from config.outputDirectory or localPath.level.Different ecosystems want different shapes:
If libLogit forces one punctuation style everywhere, it will feel bad. If it lets the meaning drift, it stops being one SDK. Beta is where we keep the meaning stable and let the syntax stay native.
Alpha proves:
Beta must harden:
| Topic | Primary file |
|---|---|
| Public product framing | README.md |
| Docs home | docs/README.md |
| API surface | docs/api/README.md |
| Public contract matrix | docs/beta/contract-matrix.md |
| Public schema audit | docs/beta/schema-audit.md |
| Public lifecycle/compatibility rules | docs/beta/lifecycle-and-compatibility.md |
| Public binding compatibility matrix | docs/beta/binding-compatibility-matrix.md |
| Public error taxonomy | docs/beta/error-taxonomy.md |
| Public schema-version strategy | docs/beta/schema-version-strategy.md |
| Shared contract | spec/logit-object.md |
| Config shape | schema/logit.v2.schema.json |
| Binding rules | docs/beta/binding-playbook.md |
| Delivery plan | docs/burndown.md |