mithril

module
v0.0.0-...-1e10b44 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2026 License: AGPL-3.0

README

mithril

mithril is a software-defined storage platform for the real world. From a single Raspberry Pi to a multi-node cloud cluster, it runs on what you have, speaks the protocols you need, and gets out of your way. Built in Go and Rust. Inspired by Ceph, MinIO, and Facebook's Tectonic.

Early-stage and experimental.

Design Principles

Mechanical sympathy. mithril understands what it runs on, and stays out of the way.

Versatile storage backends. Filesystems and raw disks. CMR, SMR and ZNS. No hostile disk takeover.

Append-only. No read-modify-write.

Fail fast and early. Errors are typed, precise, and surfaced immediately.

Idempotency. All mutating operations are idempotent, making retries and recovery safe by design.

Use commodity open-source software. Don't reinvent the wheel.

Cloud-native. gRPC, OpenTelemetry. Kubernetes (planned).

Cross-platform. Linux and macOS today. Windows and FreeBSD on the roadmap.

Components

Roadmap

  • Platform support: Windows, FreeBSD
  • Storage backends: ZoneFS (SMR HDDs, NVMe ZNS), Direct I/O (raw block devices), SPDK (bare NVMe namespaces)
  • Multi-modal storage.
    • Disk: iSCSI, NBD, NVMe-oF
    • File: NFS, SMB, AFP, 9P, SFTP, TFTP, WebDAV, FUSE
    • Object: S3, Swift
    • HDFS
  • Event-driven architecture: Kafka, NATS Streaming
  • Background workers: chunk GC, block repair, scrubbing
  • Kubernetes: Helm chart, CSI driver
  • SDKs: Go, Python, Node.js, Swift, .NET, Kotlin, Deno

License

AGPL-3.0

Directories

Path Synopsis
internal/adapters/fdbtuple
Package tuple provides a layer for encoding and decoding multi-element tuples into keys usable by FoundationDB.
Package tuple provides a layer for encoding and decoding multi-element tuples into keys usable by FoundationDB.
internal/adapters/iokit
package iokit provides IOKit utilities for interacting with macOS storage devices.
package iokit provides IOKit utilities for interacting with macOS storage devices.
internal/adapters/sysfs
Package linux provides sysfs utilities for interacting with Linux block devices.
Package linux provides sysfs utilities for interacting with Linux block devices.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL