Research & Development · Australia

We build the next generation of software in the open.

Nandlabs is a software R&D company. We research the primitives that enterprise systems are actually made of — transport, encoding, storage, scheduling, intelligence — and we rebuild them as libraries that are self-contained, production-ready, and free for anyone to use.

2
LANGUAGES · GO & RUST
30+
PACKAGES SHIPPED
100%
OPEN SOURCE
The Golly package lattice: a core surrounded by modular packages turbo genai vfs chrono secrets codec golly

What we do

Research that ships as software.

We are a small lab with a long horizon. Everything we learn becomes a library someone else can build a company on.

Foundational libraries

Routing, codecs, virtual filesystems, schedulers, object pools, lifecycle management. The unglamorous layer every serious system needs and few teams should rewrite.

Cloud-portable abstractions

One interface, many providers. Write against VFS, messaging, secrets or vector storage — then swap AWS, GCP, or Azure underneath with a single blank import.

Applied intelligence

A provider-agnostic GenAI layer with prompt templating, tool calling, embeddings and a model router — spanning OpenAI, Claude, Ollama, Bedrock and Vertex AI.

Open source

What we're building right now.

Every line we write lands on GitHub under a permissive licence. These are the projects under active development.

Golly

Our flagship: a self-contained toolkit of enterprise-grade Go libraries, deliberately built to minimise external dependencies. It spans HTTP routing and clients, WebSockets, messaging, codecs with validation, credential management with key rotation, a clustered task scheduler, a virtual filesystem, structured logging, and a provider-agnostic GenAI interface — all in one module.

assertion · cli · collections · config · errutils · fnutils · clients · rest · turbo · ws · messaging · codec · data · semver · uuid · genai · secrets · chrono · vfs · l3 · lifecycle · managers · pool

Go Apache-2.0 / MIT golly

Ferroly

A Rust port of Golly, and the purest expression of the idea: its entire runtime dependency tree is Tokio plus the TLS stack. Encoding, config, HTTP/1.1 client and server, router, RFC 6455 WebSockets, hashing and a GenAI abstraction — all hand-rolled, all feature-gated so you compile only what you use.

Rust Apache-2.0 / MIT ferroly

Golly AWS

AWS implementations of every Golly capability interface, on the AWS SDK for Go v2. S3-backed VFS, SQS and SNS messaging, Secrets Manager, Cognito auth, IAM authorization, Bedrock GenAI with tool calling, OpenSearch kNN vector storage, and DynamoDB leader election.

Go Apache-2.0 golly-aws

Golly GCP

The same capability surface on Google Cloud: Cloud Storage VFS, Pub/Sub messaging, Secret Manager, Firebase auth, Cloud IAM policy evaluation, a Vertex AI and Gemini GenAI provider with streaming and structured output, plus Vector Search and AlloyDB pgvector backends.

Go Apache-2.0 golly-gcp

Golly Azure & Kafka

The ecosystem keeps widening. Golly Azure brings Microsoft's cloud into the same provider pattern, while Golly Kafka implements the messaging interface against Kafka — so a producer written once runs on a local channel, SQS, Pub/Sub, or a broker.

Learning by example? Start with golly-samples, or browse all repositories.

Philosophy

Fewer dependencies. Longer half-life.

  • Self-contained by default A transitive dependency is a liability you did not choose. We implement the stack ourselves so your supply chain stays small enough to audit.
  • Interfaces before implementations Capability first, provider second. Code written against Golly's interfaces outlives the cloud vendor it was first deployed on.
  • Research in public No private prototypes, no delayed releases. The experiment, the mistake and the fix all happen on the default branch.
  • Enterprise-grade, not enterprise-shaped Retries, circuit breakers, key rotation, leader election and graceful lifecycle — built in from the first commit, not bolted on for a procurement checklist.
main.go
// One interface. Any cloud.
import (
    "oss.nandlabs.io/golly/vfs"
    _ "oss.nandlabs.io/golly-aws/s3"
    _ "oss.nandlabs.io/golly-gcp/gs"
)

func main() {
    f, _ := vfs.Open("s3://reports/q3.csv")
    defer f.Close()

    // swap the scheme, keep the code
    vfs.Copy(f, "gs://archive/q3.csv")
}

Get involved

Good infrastructure is a public good.

Use it, break it, send us the patch. Issues and pull requests are open on every repository, and we read all of them.