ozaco.com
// hero@ozaco/std v0.5.0
v0.5.0 · 6 packages

The coding and tooling
ecosystem, you need

ozaco is a set of runtime-agnostic TypeScript packages: an effect and results system, and an IO and Server layer that runs the same on Bun, Node and the Web.

01 / 04
design
// whycount: 4

Why ozaco

Four properties the runtime holds, and the API that gives each one — guarantees about shape, not speed.

01

Failures are values

An operation settles as a Result. Nothing is thrown, so the type says what can go wrong.

isFailure(result)
02

Tasks have an owner

A spawned task cannot outlive its scope. Closing one halts its children and waits for them.

yield* spawn(worker)
03

Teardown is armed, not remembered

Cleanup is registered on the way in. It runs however the body leaves — return, failure or halt.

yield* ensure(close)
04

One IO contract

The same code on Bun, Node and the Web. The backend is picked at the import, not in your logic.

yield* IO.actions.mkdir(...)
02 / 04
npm
// startone command

Start with the standard library

Everything else — the server, the CLI, the database layer — is built on the same effect system and the same result type.

bun add @ozaco/std
read the docs
04 / 04
ozaco.com
~/ozaco

Runtime-agnostic TypeScript packages, and two things built on them.

MIT