SDKs
The Loams SDKs, what they cover in 0.1.0, how to install each one, and where the example repositories are.
Every Loams SDK is one client object with namespaced modules over the unified Connect API: one port (8080 on loams dev) speaks the Connect protocol, gRPC and gRPC-Web. The module surface is generated from the protos in proto/; the runtime under it (transport, token sources, retries, typed errors, consistency tokens, pagination, streams) is hand-written once per language and checked against a shared conformance corpus.
| Language | Install | Status | Examples |
|---|---|---|---|
| TypeScript | npm i @loams/client | Available | loams-typescript |
| Python | pip install loams | Available | loams-python |
| Go | go get loams.dev/go@v0.1.0 | Available | loams-go |
| Rust | cargo add loams | Available | loams-rust |
| C# | dotnet add package Loams | Available | loams-csharp |
| C++ | loams-cpp-0.1.0.tar.gz from the release | Available | loams-cpp |
| Swift | SwiftPM, from 0.1.0 | Available | loams-swift |
| Java | dev.loams:loams:0.1.0 | Experimental | loams-java |
| Kotlin | dev.loams:loams-kotlin:0.1.0 | Experimental | loams-kotlin |
| Ruby | gem install loams | Experimental | loams-ruby |
| PHP | composer require loams/loams | Experimental | loams-php |
TypeScript, Python, Go, Rust, C#, C++ and Swift are released from the 0.1.0 tag; Swift is built and tested in CI on macOS. Java and Kotlin (Maven Central) and Ruby (RubyGems) are published as 0.1.0 too, and are experimental. PHP 0.1.0 is in the split repository ostrium-labs/loams-php but not on Packagist yet; see PHP for the Composer line. Dart and Objective-C are in the repository but not published. In 0.x an SDK's API may change between minor versions: pin 0.1.
The example repositories (ostrium-labs/loams-<language>) hold runnable examples and getting-started projects; the SDK source itself lives in ostrium-labs/loams under sdks/.
What the SDKs cover in 0.1.0
| Module | What it does |
|---|---|
instance | What this instance is: its API packages, sign-in methods and served services. Needs no credential, so it is every client's first call |
system | Feature detection: guard('live') fails with FeatureNotInVariantError when this build does not serve a package, without an RPC once the catalogue is cached |
auth, admin.* | Sign-in, API keys, organizations, projects, agents and audit |
live, live.admin, tables | Loams Live: reactive queries, mutations and deploys |
Collections and hybrid search are not in the SDK facade yet. The Python SDK refuses the hybrid query builder and bulk ingest by name rather than stubbing them. Until they land, call the REST API from your language's HTTP client (the TypeScript and Python pages show how), or keep a Qdrant or Elasticsearch client.
Common shape
Every SDK takes the same three inputs:
- The endpoint.
http://127.0.0.1:8080forloams dev;https://loams.<tailnet>.ts.netfor a self-hosted stack. - Credentials. An API key (
LOAMS_API_KEY) for scripts and CI, or a token source (environment token, OIDC exchange).GetInstanceneeds none. See Authentication and API keys. - Consistency. Reads are strong by default. Opt in to a session to carry a consistency token across calls; see Consistency tokens.
Errors are typed and carry a stable snake_case reason from the reason registry, such as feature_not_in_variant. Branch on the type or the reason, never on the message.