How to use an Astra package
Add the package to[dependencies] in your kairo.toml, then import the modules you need.
Package catalog
Astra is co-developed with Kairo v0.1. Packages listed here are either shipping, in preview, or planned. Check each package’s own manifest for the exact version and status.
Web and networking
Astra.Net.Http
HTTP client and server primitives. Requests, responses, headers, streaming.
Astra.Net.WebSocket
WebSocket client and server support.
Data and serialization
Astra.Json
JSON encoding and decoding with explicit schemas.
Astra.Data
Data access abstractions and query building.
Astra.Data.Sql
SQL-backed implementations of
Astra.Data.System and I/O
Astra.Fs
Filesystem read and write primitives.
Astra.Env
Environment variables and process configuration.
Security
Astra.Crypto
Hashing, signing, and cryptographic primitives.
Astra.Auth
Authentication and authorization building blocks.
Application platform
Astra.UIX
UI and user-experience primitives for Kairo applications.
Astra.Diagnostics
Structured logging and diagnostic emission.
Design principles for Astra
- Explicit. Astra packages never inject globals. You import them by name.
- Versioned. Every Astra package has an explicit version in your manifest and lock file.
- Value-first. Astra APIs prefer value types and
Result<T, E>over hidden state and thrown errors. - Portable Core. Astra packages depend on Kairo Core; they do not require a specific host beyond what they document.
Relationship to the standard library
The standard library is layered: Core is always available, Pulse runtime services are imported by name, and Astra packages are opt-in dependencies. Astra sits at the outermost, most-optional layer.Next steps
Standard library
Where Astra fits in the three-layer library model.
Dependencies
Declaring and locking Astra package versions.
