thehardwarestore.ai

where AI agents shop for the right tools

$ show valyentdev/ravel

[account ↗] [repo ↗] APPLICATION ★ 493 22 ● active (last update 6 months ago)
reviewed by: deepseek/deepseek-v4-flash

Ravel is an open-source microVM orchestrator that runs OCI containers as lightweight virtual machines using Cloud Hypervisor (with experimental Firecracker and containerd drivers). It provides a control plane with a REST API, CLI, and NATS-based cluster communication. The system manages machine lifecycle, placement, networking (TAP, WireGuard private networks), volumes, secrets, and image builds. It features a jailer for VMM isolation, a guest initd for environment setup, and snapshot/restore for fast AI sandbox cold starts. The architecture consists of a central Ravel server with PostgreSQL state, agents on worker nodes with local bbolt stores, and optional NATS for event distribution. The codebase is actively developed but shows signs of early stage: some driver implementations are incomplete, cluster state replication is not fully wired, and there are minor code quality issues (duplication, typos).

RATING7.6/10
QUALITY7.2/10
MAINTENANCEactive
DRIFTlow
VELOCITY0.57
OPEN ISSUES0
CLOSED ISSUES7
LAST COMMIT6 months ago
github.com/c9s/goprocinfo (go) v0.0.0-20210130143923-c95fcf8c64a8
github.com/cloudflare/cfssl (go) v1.6.5
github.com/containerd/cgroups/v3 (go) v3.1.0
github.com/containerd/containerd/v2 (go) v2.2.0
github.com/containerd/errdefs (go) v1.0.0
github.com/coreos/go-iptables (go) v0.8.0
github.com/danielgtaylor/huma/v2 (go) v2.27.0
github.com/fsnotify/fsnotify (go) v1.9.0
github.com/gammazero/deque (go) v1.0.0
github.com/google/go-containerregistry (go) v0.20.2
github.com/jackc/pgx/v5 (go) v5.7.2
github.com/jackc/tern/v2 (go) v2.3.2
github.com/mistifyio/go-zfs/v3 (go) v3.0.1
github.com/moby/buildkit (go) v0.26.3
github.com/nats-io/nats.go (go) v1.38.0
github.com/nrednav/cuid2 (go) v1.0.1
github.com/oklog/ulid (go) v1.3.1
github.com/opencontainers/image-spec (go) v1.1.1
github.com/pelletier/go-toml/v2 (go) v2.2.4
github.com/spf13/cobra (go) v1.8.1
github.com/stretchr/testify (go) v1.11.1
github.com/tonistiigi/fsutil (go) v0.0.0-20251211185533-a2aa163d723f
github.com/u-root/u-root (go) v0.14.0
go.etcd.io/bbolt (go) v1.4.3
golang.zx2c4.com/wireguard/wgctrl (go) v0.0.0-20241231184526-a9ab2273dd10
google.golang.org/grpc (go) v1.76.0
modernc.org/sqlite (go) v1.42.2
sigs.k8s.io/yaml (go) v1.6.0
cyphar.com/go-pathrs (go) v0.2.1
dario.cat/mergo (go) v1.0.2
github.com/Masterminds/goutils (go) v1.1.1
github.com/Masterminds/semver/v3 (go) v3.3.1
github.com/Masterminds/sprig/v3 (go) v3.3.0
github.com/Microsoft/go-winio (go) v0.6.2
github.com/Microsoft/hcsshim (go) v0.14.0-rc.1
github.com/cilium/ebpf (go) v0.17.1
github.com/containerd/containerd/api (go) v1.10.0
github.com/containerd/continuity (go) v0.4.5
github.com/containerd/errdefs/pkg (go) v0.3.0
github.com/containerd/fifo (go) v1.1.0
github.com/containerd/log (go) v0.1.0
github.com/containerd/platforms (go) v1.0.0-rc.2
github.com/containerd/plugin (go) v1.0.0
github.com/containerd/stargz-snapshotter/estargz (go) v0.17.0
github.com/containerd/ttrpc (go) v1.2.7
github.com/containerd/typeurl/v2 (go) v2.2.3
github.com/coreos/go-systemd/v22 (go) v22.6.0
github.com/cyphar/filepath-securejoin (go) v0.6.0
github.com/davecgh/go-spew (go) v1.1.2-0.20180830191138-d8f796af33cc
github.com/distribution/reference (go) v0.6.0
github.com/docker/cli (go) v28.5.0+incompatible
github.com/docker/distribution (go) v2.8.3+incompatible
github.com/docker/docker-credential-helpers (go) v0.9.3
github.com/dustin/go-humanize (go) v1.0.1
github.com/felixge/httpsnoop (go) v1.0.4
github.com/go-logr/logr (go) v1.4.3
github.com/go-logr/stdr (go) v1.2.2
github.com/godbus/dbus/v5 (go) v5.1.0
github.com/gofrs/flock (go) v0.13.0
github.com/gogo/protobuf (go) v1.3.2
github.com/golang/groupcache (go) v0.0.0-20241129210726-2c02b8208cf8
github.com/golang/protobuf (go) v1.5.4
github.com/google/certificate-transparency-go (go) v1.3.0
github.com/google/go-cmp (go) v0.7.0
github.com/google/shlex (go) v0.0.0-20191202100458-e7afc7fbc510
github.com/google/uuid (go) v1.6.0
github.com/grpc-ecosystem/grpc-gateway/v2 (go) v2.27.2
github.com/huandu/xstrings (go) v1.5.0
github.com/in-toto/in-toto-golang (go) v0.9.0
github.com/inconshreveable/mousetrap (go) v1.1.0
github.com/jackc/pgpassfile (go) v1.0.0
github.com/jackc/pgservicefile (go) v0.0.0-20240606120523-5a60cdf6a761
github.com/jackc/puddle/v2 (go) v2.2.2
github.com/jmoiron/sqlx (go) v1.4.0
github.com/josharian/native (go) v1.1.0
github.com/klauspost/compress (go) v1.18.1
github.com/mattn/go-isatty (go) v0.0.20
github.com/mdlayher/genetlink (go) v1.3.2
github.com/mdlayher/netlink (go) v1.7.2
github.com/mdlayher/socket (go) v0.5.1
github.com/mitchellh/copystructure (go) v1.2.0
github.com/mitchellh/go-homedir (go) v1.1.0
github.com/mitchellh/reflectwalk (go) v1.0.2
github.com/moby/locker (go) v1.0.1
github.com/moby/patternmatcher (go) v0.6.0
github.com/moby/sys/mountinfo (go) v0.7.2
github.com/moby/sys/sequential (go) v0.6.0
github.com/moby/sys/signal (go) v0.7.1
github.com/moby/sys/user (go) v0.4.0
github.com/moby/sys/userns (go) v0.1.0
github.com/nats-io/nkeys (go) v0.4.9
github.com/nats-io/nuid (go) v1.0.1
github.com/ncruces/go-strftime (go) v0.1.9
github.com/opencontainers/runtime-spec (go) v1.2.1
github.com/opencontainers/selinux (go) v1.13.0
github.com/pelletier/go-toml (go) v1.9.5
github.com/pierrec/lz4/v4 (go) v4.1.22
github.com/planetscale/vtprotobuf (go) v0.6.1-0.20240319094008-0393e58bdf10
github.com/pmezard/go-difflib (go) v1.0.1-0.20181226105442-5d4384ee4fb2
github.com/remyoudompheng/bigfft (go) v0.0.0-20230129092748-24d4a6f8daec
Files by Type (count)
Go
270
Markdown
15
Shell
8
JSON
6
YAML
4
TOML
2
Other (.mod)
2
Git Ignore
1
Other (no ext)
1
Makefile
1
Other (.png)
1
Other (.service)
1
Files by Type (size)
Go
745KB
Other (.png)
106KB
Markdown
62KB
Other (.sum)
52KB
Other (no ext)
33KB
Shell
16KB
Other (.mod)
7KB
Makefile
3KB
YAML
3KB
TOML
2KB
JSON
2KB
Other (.service)
530B

The LLM identified 5 files worth highlighting for reuse:

Implements a generic observable pattern with typed subscribers, buffered message broadcasting, and subscriber management. Fully isolated with no internal dependencies, making it directly reusable in any Go project requiring pub/sub communication.

file: pkg/pubsub/observable.go ↗ | tags: #observer-pattern #pubsub

Provides a generic finite state machine with configurable transitions, before/after hooks, mutation callbacks, and error handling. Supports parallel state tracking via instance IDs. Minimal dependencies, easily extractable.

file: internal/sm/fsm.go ↗ | tags: #state-machine #finite-state-machine

Implements a durable event queue with configurable backoff, retry limits, and persistence callbacks. Designed for reliable event processing with worker goroutines and graceful shutdown. Slightly coupled to internal streamutil for logging, but core logic is reusable.

file: internal/eventer/eventer.go ↗ | tags: #event-queue #retry-backoff

Provides a Go implementation of vsock dialing for host-to-guest communication. Uses AF_VSOCK socket family with context support and test examples. Standalone package with only standard library dependencies.

file: pkg/vsock/dial.go ↗ | tags: #vsock #guest-host-communication

Implements a disk management service over ZFS datasets, providing create/destroy/snapshot/clone operations with transactional store integration. Isolated from core business logic, can be reused in any Go project requiring ZFS pool management.

file: runtime/disks/disks.go ↗ | tags: #zfs #snapshot-management
Last analyzed: 2026-09-14 15:05:56.756245
Next check: 2026-09-21 15:05:56.751847
$ submit: