calfonso/rusternetes

kubernetes, reimplemented in Rust

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 15 minutes ago
Added to GitGenius on April 1st, 2026
Created on March 9th, 2026
Open Issues & Pull Requests: 11 (+0)
Number of forks: 47
Total Stargazers: 719 (+0)
Total Subscribers: 1 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.5 days
Mean response time: 3.3 days
90th percentile: 7.7 days
Tracked items: 28

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 20% of issues opened in the past year have been closed. Three people close 100% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 4
New in 7 days: 0
Closed in 7 days: 3
Avg open age: 27 days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 3
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Detailed Description

Rusternetes is a complete ground-up reimplementation of Kubernetes written in Rust. Rather than wrapping the original Go codebase or providing a partial mock, every core component—the API server, scheduler, controller manager, kubelet, and kube-proxy—is implemented from scratch in Rust while maintaining full compatibility with the actual Kubernetes API surface, wire format, and behavioral semantics. The project spans over 216,000 lines of Rust code organized across 10 crates, includes 31 reconciliation controllers, and has passed 3,100 plus tests. Most significantly, it achieves 94 percent conformance with the official Kubernetes v1.35 e2e test suite, passing 415 out of 441 conformance tests across 160 rounds of testing.

The repository includes a built-in web console with real-time cluster topology visualization, live metrics, pod log streaming, and full resource management capabilities. The console provides multiple views including an overview with health rings and deployment rollout progress, a topology view with animated node and pod maps, workload management with deployment cards, networking configuration displays, storage management interfaces, node monitoring with CPU and memory gauges, configuration management for ConfigMaps and Secrets, event filtering and histograms, and RBAC visualization. The console is embedded directly in the API server and deploys automatically without requiring separate installation.

A distinctive feature of Rusternetes is its flexible deployment architecture. It supports a full cluster deployment with etcd using separate containers per component backed by Raft consensus and leader election. Alternatively, users can swap the database layer entirely by replacing etcd with Rhino, an etcd-compatible gRPC server written in Rust that stores data in SQLite, Redis, PostgreSQL, or MySQL while maintaining the same Kubernetes API and binaries. For lightweight use cases, the project offers an all-in-one single-binary deployment mode where all five components run as concurrent tokio tasks in one process with an embedded SQLite or Redis backend, eliminating the need for external infrastructure. This mode targets edge devices, CI/CD pipelines, local development, IoT gateways, embedded systems, and air-gapped environments.

The API server is built on Axum and implements the Kubernetes REST API across 76 handler modules covering core/v1, apps/v1, batch/v1, RBAC, storage, and networking API groups.

The scheduler implements a filter and score plugin architecture supporting node and pod affinity, taints and tolerations, resource request scoring, priority classes, preemption, and topology spread constraints. The controller manager runs 31 concurrent reconciliation controllers handling Deployments, StatefulSets, DaemonSets, Jobs, CronJobs, Services, Endpoints, PersistentVolumes, Horizontal and Vertical Pod Autoscalers, NetworkPolicies, and numerous other resource types.

The kubelet integrates with container runtimes via the bollard Docker API client, supporting pod lifecycle management, pause containers, liveness and readiness probes, volume mounts including emptyDir and configMap, resource limits, init containers, lifecycle hooks, and pod exec via WebSocket. Kube-proxy provides iptables-based service routing for ClusterIP, NodePort, and LoadBalancer service types with session affinity support.

The project shares contributors with containers/buildah, cilium/cilium, and rancher/rancher repositories, indicating integration within the broader container and cloud-native ecosystem.