[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93947":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":16,"starSnapshotCount":16,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},93947,"rusternetes","calfonso\u002Frusternetes","calfonso","kubernetes, reimplemented in Rust",null,"https:\u002F\u002Fgithub.com\u002Fcalfonso\u002Frusternetes","Rust",637,42,1,4,0,45.9,false,"main","2026-09-21 04:01:26","# Rūsternetes\n\n**A ground-up reimplementation of Kubernetes in Rust.** [Documentation Site](https:\u002F\u002Fcalfonso.github.io\u002Frusternetes\u002F)\n\n216,000+ lines of Rust across 10 crates. 31 controllers. 3,100+ tests. Actively conformance-tested against the official Kubernetes e2e test suite — currently passing 94% of conformance tests (415\u002F441) across 160 rounds of testing.\n\nThis isn't a wrapper around the Go codebase or a partial mock. Every component — API server, scheduler, controller manager, kubelet, kube-proxy — is written from scratch in Rust, implementing the actual Kubernetes API surface, wire format, and behavioral semantics.\n\n## Web Console\n\nRūsternetes includes a built-in web console with real-time cluster topology visualization, live metrics, pod log streaming, and full resource management. It deploys automatically — embedded in the API server, no separate installation.\n\n[![Cluster Topology with Live Logs](docs\u002Fscreenshots\u002Fconsole-topology-logs.png)](docs\u002Fscreenshots\u002Fconsole-topology-logs.png)\n\n| | | |\n|---|---|---|\n| [![Overview](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-overview.png)](docs\u002Fscreenshots\u002Fconsole-overview.png) | [![Topology](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-topology.png)](docs\u002Fscreenshots\u002Fconsole-topology.png) | [![Workloads](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-workloads.png)](docs\u002Fscreenshots\u002Fconsole-workloads.png) |\n| **Overview** — Health rings, sparkline charts, deployment rollout progress, event feed | **Topology** — Animated node\u002Fpod\u002Fservice map with traffic particles, CPU heatmap, protocol badges | **Workloads** — Pod phase chart, deployment cards with scale\u002Frestart, restart heatmap |\n| [![Networking](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-networking.png)](docs\u002Fscreenshots\u002Fconsole-networking.png) | [![Storage](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-storage.png)](docs\u002Fscreenshots\u002Fconsole-storage.png) | [![Nodes](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-nodes.png)](docs\u002Fscreenshots\u002Fconsole-nodes.png) |\n| **Networking** — Service CIDR, DNS, kube-proxy config, service routing diagrams | **Storage** — Capabilities, StorageClass provisioning, PVC\u002FPV management | **Nodes** — CPU\u002Fmemory gauges from real Docker stats, cordon\u002Funcordon |\n| [![Config](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-config.png)](docs\u002Fscreenshots\u002Fconsole-config.png) | [![Events](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-events.png)](docs\u002Fscreenshots\u002Fconsole-events.png) | [![RBAC](docs\u002Fscreenshots\u002Fthumbs\u002Fconsole-rbac.png)](docs\u002Fscreenshots\u002Fconsole-rbac.png) |\n| **Config** — ConfigMaps with key badges, Secrets, Service Accounts | **Events** — Frequency histogram, type\u002Freason filtering, auto-refresh | **RBAC** — Subject-role mapping, binding visualization, rule badges |\n\nSee the [Console User Guide](docs\u002FCONSOLE_USER_GUIDE.md) for full documentation.\n\n## Architecture\n\n```\n┌───────────────────────────────────────────────────────────────┐\n│                       Control Plane                           │\n│                                                               │\n│  ┌──────────────────┐  ┌──────────────┐  ┌────────────────┐   │\n│  │  API Server      │  │  Scheduler   │  │  Controller    │   │\n│  │  Axum + TLS      │  │  Affinity    │  │  Manager       │   │\n│  │  REST + Watch    │  │  Taints      │  │  31 control    │   │\n│  │  RBAC + Webhooks │  │  Preemption  │  │  loops         │   │\n│  │  Web Console     │  │              │  │                │   │\n│  └────────┬─────────┘  └──────────────┘  └────────────────┘   │\n│           │                                                   │\n│  ┌────────▼─────────┐                                         │\n│  │ Storage          │                                         │\n│  │ etcd|SQLite|Redis│                                         │\n│  └──────────────────┘                                         │\n├───────────────────────────────────────────────────────────────┤\n│                       Node Components                         │\n│                                                               │\n│  ┌──────────────────┐  ┌──────────────────────────────────┐   │\n│  │  Kubelet         │  │  Kube-Proxy                      │   │\n│  │  bollard (Docker)│  │  iptables routing                │   │\n│  │  Probes+Volumes  │  │  ClusterIP\u002FNodePort\u002FLB           │   │\n│  └──────────────────┘  └──────────────────────────────────┘   │\n└───────────────────────────────────────────────────────────────┘\n```\n\n## Deploy Your Way\n\nRusternetes supports multiple deployment modes from the same codebase:\n\n**Full cluster with etcd** — the standard production deployment with separate containers per component, backed by an etcd cluster with Raft consensus and leader election.\n\n**Swap the database** — replace etcd with [Rhino](https:\u002F\u002Fgithub.com\u002Fcalfonso\u002Frhino), an etcd-compatible gRPC server written in Rust that stores everything in SQLite, Redis, PostgreSQL, or MySQL. Same Kubernetes API, same binaries, zero etcd infrastructure. Just change the compose file.\n\n**Single binary, single process** — all five components running as concurrent tokio tasks in one process with an embedded SQLite or Redis backend. No etcd, no external infrastructure. Your entire cluster state lives in a single SQLite file or a Redis instance.\n\nThe all-in-one mode is built for environments where a full K8s cluster is overkill: edge devices, CI\u002FCD pipelines, local development, IoT gateways, embedded systems, and air-gapped environments.\n\n## Prerequisites\n\n- **Rust** (latest stable) — install via [rustup.rs](https:\u002F\u002Frustup.rs\u002F)\n- **Protocol Buffers compiler** — required for building the API server\n  - Fedora\u002FRHEL: `sudo dnf install -y protobuf-compiler protobuf-devel`\n  - Debian\u002FUbuntu: `sudo apt install -y protobuf-compiler`\n  - macOS: `brew install protobuf`\n- **Container runtime** — Docker or Podman\n\n## Quick Start\n\n### Full cluster (Podman + etcd)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcalfonso\u002Frusternetes.git\ncd rusternetes\n\nexport KUBELET_VOLUMES_PATH=$(pwd)\u002F.rusternetes\u002Fvolumes\npodman compose build\npodman compose up -d\nbash scripts\u002Fbootstrap-cluster.sh\n\nexport KUBECONFIG=~\u002F.kube\u002Frusternetes-config\nkubectl get nodes\nkubectl create deployment nginx --image=nginx\n```\n\n### Full cluster (Docker Compose + etcd)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcalfonso\u002Frusternetes.git\ncd rusternetes\n\nexport KUBELET_VOLUMES_PATH=$(pwd)\u002F.rusternetes\u002Fvolumes\ndocker compose build\ndocker compose up -d\nbash scripts\u002Fbootstrap-cluster.sh\n\nexport KUBECONFIG=~\u002F.kube\u002Frusternetes-config\nkubectl get nodes\n```\n\n### Full cluster with SQLite (no etcd)\n\nSame cluster, but [Rhino](https:\u002F\u002Fgithub.com\u002Fcalfonso\u002Frhino) replaces etcd. No recompilation needed — same binaries.\n\n```bash\n# Podman\npodman compose -f compose.sqlite.yml build\npodman compose -f compose.sqlite.yml up -d\n\n# Docker\ndocker compose -f docker-compose.sqlite.yml build\ndocker compose -f docker-compose.sqlite.yml up -d\n\nbash scripts\u002Fbootstrap-cluster.sh\n```\n\n### Full cluster with Redis (no etcd)\n\nSame cluster, but Rhino uses Redis for in-memory storage:\n\n```bash\npodman compose -f compose.redis.yml build\npodman compose -f compose.redis.yml up -d\nbash scripts\u002Fbootstrap-cluster.sh\n```\n\n### All-in-one binary\n\nFull Kubernetes in a single process with embedded SQLite:\n\n```bash\ncargo build -p rusternetes\n.\u002Ftarget\u002Frelease\u002Frusternetes --data-dir .\u002Fcluster.db\n```\n\nOr with Redis:\n\n```bash\ncargo build -p rusternetes --features redis\n.\u002Ftarget\u002Frelease\u002Frusternetes --storage-backend redis --redis-url redis:\u002F\u002Flocalhost:6379\n```\n\n**Prerequisites:** Podman or Docker for the kubelet to manage containers. On Linux with Podman, rootful mode is required for kube-proxy iptables access. See [DEVELOPMENT.md](docs\u002FDEVELOPMENT.md) for detailed setup.\n\n## What's Implemented\n\n### API Server\nAxum-based HTTPS server implementing the Kubernetes REST API. 76 handler modules covering core\u002Fv1, apps\u002Fv1, batch\u002Fv1, rbac.authorization.k8s.io\u002Fv1, storage.k8s.io\u002Fv1, networking.k8s.io\u002Fv1, and more.\n\n- Full CRUD for all major resource types\n- Watch API with Server-Sent Events\n- Server-Side Apply, Strategic Merge Patch, JSON Patch\n- Field selectors and label selectors\n- Custom Resource Definitions with watch, status\u002Fscale subresources, schema validation\n- Validating and Mutating Admission Webhooks\n- ValidatingAdmissionPolicy with CEL expressions\n- RBAC authorization with Roles, ClusterRoles, and Bindings\n- ServiceAccount JWT token signing (RS256)\n- TLS\u002FmTLS, audit logging, Pod Security Standards\n- OpenAPI v3 discovery, aggregated discovery\n\n### Scheduler\nFilter\u002Fscore plugin architecture with:\n- Node\u002FPod affinity and anti-affinity\n- Taints and tolerations\n- Resource requests and limits scoring\n- Priority classes and preemption\n- Topology spread constraints\n\n### Controller Manager\n31 reconciliation controllers running concurrent loops:\n\n| Controller | What it does |\n|---|---|\n| Deployment | Rolling updates, rollbacks, revision history |\n| ReplicaSet | Desired replica count enforcement |\n| ReplicationController | Legacy RC support |\n| StatefulSet | Ordered pod management, stable network IDs |\n| DaemonSet | Per-node pod scheduling |\n| Job | Run-to-completion workloads, indexed completion |\n| CronJob | Scheduled job creation |\n| Endpoints | Service endpoint maintenance from pod selectors |\n| EndpointSlice | Scalable endpoint slicing |\n| Service | ClusterIP allocation, service lifecycle |\n| ServiceAccount | Default SA creation, token management |\n| Namespace | Finalization, resource cleanup |\n| Node | Node status, heartbeat monitoring |\n| PV Binder | PersistentVolume to PVC binding |\n| Dynamic Provisioner | Automatic PV creation from StorageClasses |\n| Volume Snapshot | Snapshot lifecycle management |\n| Volume Expansion | Online PVC resize |\n| ResourceQuota | Namespace resource usage tracking |\n| ResourceClaim | Dynamic Resource Allocation |\n| HPA | Horizontal Pod Autoscaler |\n| VPA | Vertical Pod Autoscaler |\n| PDB | Pod Disruption Budget enforcement |\n| LoadBalancer | External LB provisioning (cloud + MetalLB) |\n| Ingress | Ingress resource management |\n| NetworkPolicy | Network policy lifecycle |\n| CRD | Custom resource schema validation |\n| CSR | Certificate signing requests |\n| Garbage Collector | Owner reference cascade deletion |\n| TTL Controller | Finished resource cleanup |\n| Taint Eviction | Evict pods from tainted nodes |\n| Events | Event recording and TTL cleanup |\n\n### Kubelet\nContainer runtime integration via [bollard](https:\u002F\u002Fgithub.com\u002Ffussybeaver\u002Fbollard) (Docker API):\n- Pod lifecycle: create, start, stop, restart with grace periods\n- Pause container network namespace sharing\n- Liveness, readiness, and startup probes (HTTP, TCP, exec)\n- Volume mounts: emptyDir, hostPath, projected, configMap, secret, downwardAPI\n- Container resource limits (CPU, memory)\n- Init containers and sidecar containers\n- Lifecycle hooks (preStop, postStart) — exec and httpGet\n- Container log retrieval\n- Pod exec and attach via WebSocket\n- Sysctls, fsGroup, IPC namespace sharing\n\n### Kube-Proxy\niptables-based service routing in host network mode:\n- ClusterIP, NodePort, LoadBalancer service types\n- Session affinity (ClientIP)\n- Endpoints and EndpointSlice consumption\n- Service CIDR routing\n\n### Storage\nPluggable storage backend with `Storage` trait:\n- **etcd backend** — production use with optimistic concurrency (CAS via mod_revision)\n- **SQLite via rhino** — lightweight alternative, no etcd cluster needed. Available as a gRPC server (`docker-compose.sqlite.yml`) or embedded in-process (all-in-one binary)\n- **Memory backend** — unit testing\n- Key schema: `\u002Fregistry\u002F{resource_type}\u002F{namespace}\u002F{name}`\n\nSee [Storage Backends](docs\u002Fstorage\u002FSTORAGE_BACKENDS.md) for full details on deployment modes.\n\n## Conformance\n\nRusternetes is actively tested against the official Kubernetes v1.35 conformance test suite using [Sonobuoy](https:\u002F\u002Fsonobuoy.io\u002F).\n\n| Round | Pass | Total | Rate | Notes |\n|-------|------|-------|------|-------|\n| 97 | ~40 | 441 | ~9% | Baseline |\n| 101 | 245 | 441 | 56% | 76 fixes deployed |\n| 141 | 368 | 441 | 83% | Watch + storage fixes |\n| 146 | 379 | 441 | 86% | CRD + scheduler fixes |\n| 155 | 403 | 441 | 91.4% | Previous high score |\n| 159 | 410 | 441 | 93.0% | Previous high score |\n| 160 | 415 | 441 | 94.1% | Latest full run |\n\n```bash\n# Run conformance tests\nbash scripts\u002Frun-conformance.sh\n\n# Monitor progress\nbash scripts\u002Fconformance-progress.sh\n```\n\n## Project Structure\n\n```\ncrates\u002F\n  api-server\u002F          Axum HTTPS API (76 handler modules, 2500-line router)\n  controller-manager\u002F  31 reconciliation controllers\n  scheduler\u002F           Filter\u002Fscore plugin scheduling\n  kubelet\u002F             Container runtime, probes, volumes\n  kube-proxy\u002F          iptables service routing\n  storage\u002F             Pluggable storage: etcd, SQLite (rhino), memory\n  common\u002F              Shared types (36 resource modules), errors, utilities\n  kubectl\u002F             CLI tool\n  cloud-providers\u002F     AWS, GCP, Azure integrations\n  rusternetes\u002F         All-in-one binary (all components as tokio tasks)\n\nscripts\u002F\n  bootstrap-cluster.sh   Bootstrap CoreDNS, services, SA tokens\n  run-conformance.sh     Full conformance test lifecycle\n  conformance-progress.sh  Monitor pass\u002Ffail progress\n  generate-certs.sh      TLS certificate generation\n\ndocs\u002F                  Architecture, guides, conformance tracking\n```\n\n## Development\n\n```bash\ncargo build                    # Debug build\ncargo test                     # All workspace tests\ncargo test -p rusternetes-api-server  # Single crate\ncargo clippy --all-targets --all-features -- -D warnings\nmake pre-commit                # Format + clippy + test\n```\n\nSee [DEVELOPMENT.md](docs\u002FDEVELOPMENT.md) for the full guide and [CONTRIBUTING.md](docs\u002FCONTRIBUTING.md) for contribution guidelines.\n\n## Documentation\n\n**[Full Documentation Site](docs\u002Fguide\u002Findex.html)** — 30 pages covering every feature, configuration option, and use case.\n\n| Topic | Link |\n|-------|------|\n| Quick Start | [Quick Start](docs\u002Fguide\u002Fquickstart.html) |\n| Deployment Modes | [Deployment Overview](docs\u002Fguide\u002Fdeployment.html) |\n| All-in-One Binary | [All-in-One](docs\u002Fguide\u002Fall-in-one.html) |\n| Configuration | [API Server](docs\u002Fguide\u002Fapi-server-config.html) \u002F [Kubelet](docs\u002Fguide\u002Fkubelet-config.html) \u002F [Storage](docs\u002Fguide\u002Fstorage-config.html) |\n| Features | [Workloads](docs\u002Fguide\u002Fworkloads.html) \u002F [Networking](docs\u002Fguide\u002Fnetworking.html) \u002F [Security](docs\u002Fguide\u002Fsecurity.html) \u002F [CRDs](docs\u002Fguide\u002Fcrds.html) |\n| Web Console | [Console](docs\u002Fguide\u002Fconsole.html) \u002F [CONSOLE.md](docs\u002FCONSOLE.md) |\n| Authentication | [Authentication](docs\u002Fguide\u002Fauthentication.html) \u002F [AUTHENTICATION.md](docs\u002FAUTHENTICATION.md) |\n| kubectl | [kubectl Reference](docs\u002Fguide\u002Fkubectl.html) |\n| API Reference | [API Reference](docs\u002Fguide\u002Fapi-reference.html) |\n| Conformance | [Conformance Status](docs\u002Fguide\u002Fconformance.html) |\n| Development | [DEVELOPMENT.md](docs\u002FDEVELOPMENT.md) |\n\n## License\n\nApache-2.0\n","Rūsternetes 是一个从零开始用 Rust 语言完整重写的 Kubernetes 实现，严格兼容官方 API、协议格式与行为语义。核心功能包括自研的 API Server、调度器、控制器管理器、kubelet 和 kube-proxy，并内置支持实时拓扑可视化、日志流式查看、资源管理与 RBAC 的 Web 控制台。项目通过官方 Kubernetes e2e 合规性测试（94% 通过率），适用于对内存安全、运行时性能和系统可维护性有较高要求的实验性集群、教学演示及嵌入式\u002F边缘轻量级编排场景。",2,"2026-07-28 02:30:07","trending"]