Apache 2.0 storage infrastructure

One binary for object, file, block, and Iceberg storage.

GrainFS is a single-binary distributed storage server for developer and data infrastructure teams that need S3-compatible object storage, NFS/9P file access, Linux NBD volumes, and an Iceberg REST Catalog over one storage layer.

grainfs quick start
# start a local S3-compatible storage server
DATA_DIR=./tmp
make bin/grainfs
CLUSTER_KEY=$(openssl rand -hex 32)
./bin/grainfs serve --data "$DATA_DIR" --port 9000 --cluster-key "$CLUSTER_KEY"

# use it from standard S3 tooling
echo "hello grainfs" > file.txt
aws --no-sign-request --endpoint-url http://localhost:9000 s3 cp file.txt s3://default/

Four storage interfaces. One operational unit.

GrainFS exposes object, file, block, and table/catalog surfaces over shared storage and cluster contracts. Protocol adapters translate client behavior without turning every interface into a separate system to run.

S3-compatible HTTP APIobject
NFSv4 + 9P2000.Lfile
single binary GrainFS
Linux NBD volumesblock
Iceberg REST Cataloglake

Built for teams stitching storage systems together.

GrainFS starts with open-source adoption, then grows into paid operational tooling for teams that need confidence around deployment, recovery, observability, and upgrades.

Data / AI platforms

Local lake workflows without extra services.

Use S3-compatible storage and an Iceberg REST Catalog for DuckDB-oriented development, internal data platform sandboxes, and lakehouse integration testing.

On-prem / edge / lab

Small clusters with multiple protocol surfaces.

Run object, file, and block interfaces near private infrastructure, GPU boxes, lab devices, or edge deployments where a heavyweight storage stack is too much.

Developer infrastructure

A storage protocol testbed in one binary.

Replace a pile of local fixtures with one storage server for S3, NFS/9P, NBD, and Iceberg client and product integration tests.

Operator trust is the product boundary.

The roadmap focuses on safe defaults, explicit escape hatches, observable recovery, compatibility gates, and operational runbooks — the parts teams need before trusting storage with real workloads.

S3 PUT
548.30MiB/s

Same-host single-node warp run, 64 KiB objects, concurrency 32, signed requests, 0 errors.

S3 GET
1849.34MiB/s

Warm-read pass over objects kept from the preceding PUT pass on the local Apple M3 setup.

Catalog mixed
60k+ops/s

Single-node Iceberg REST Catalog benchmark via warp iceberg, with 0 errors in the referenced run.

License
Apache2.0

Permissive open-source core for local use, small clusters, protocol testing, and infrastructure adoption.

Benchmark claims should be read with their methodology: same host class, comparable durability, object size, concurrency, warm/cold-cache rules, signed S3 requests, and raw artifacts. See the benchmark reference in the GrainFS repository before publishing comparisons.

Open core adoption. Paid operational confidence.

The business model starts with a strong open-source engine, then monetizes the control plane, enterprise operating features, and support paths that production teams need.

Community

Open-source engine

  • Single-node and small-cluster usage
  • S3, NFS/9P, NBD, and Iceberg surfaces
  • CLI, docs, runbooks, and benchmark references
Start on GitHub
Pro

Team control plane

  • Cluster dashboard and health inventory
  • Diagnostics, backup/restore workflows, upgrade checks
  • Slack/email support and operational guidance
Talk to us
Enterprise

Private infrastructure support

  • Air-gapped install and long-term support builds
  • SSO/RBAC, audit workflows, recovery assistance
  • Architecture review for on-prem, edge, and lab clusters
Contact sales
grainfs.gritive.com

Try GrainFS locally in minutes.

Start with the open-source binary, validate your storage workflow, then bring the control-plane and enterprise operating model when the workload matters.