{"id":13608371,"url":"https://github.com/aurae-runtime/aurae","last_synced_at":"2025-12-15T04:59:33.822Z","repository":{"id":60074627,"uuid":"531874744","full_name":"aurae-runtime/aurae","owner":"aurae-runtime","description":"Distributed systems runtime daemon written in Rust.","archived":false,"fork":false,"pushed_at":"2025-03-22T07:29:18.000Z","size":14569,"stargazers_count":1877,"open_issues_count":43,"forks_count":93,"subscribers_count":41,"default_branch":"main","last_synced_at":"2025-04-10T22:39:38.966Z","etag":null,"topics":["daemon","distributed-systems","linux","multitenancy","rust","system-programming"],"latest_commit_sha":null,"homepage":"https://aurae.io","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aurae-runtime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-02T10:07:53.000Z","updated_at":"2025-04-09T13:58:55.000Z","dependencies_parsed_at":"2025-02-14T20:24:34.840Z","dependency_job_id":"c0a7f1fe-0493-4fb7-865e-33de26ebb7e5","html_url":"https://github.com/aurae-runtime/aurae","commit_stats":{"total_commits":827,"total_committers":52,"mean_commits":"15.903846153846153","dds":0.6626360338573156,"last_synced_commit":"9bd420b1780bc8958cddb0b9536b68e4a1c87156"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":"krisnova/rust-nova","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurae-runtime%2Faurae","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurae-runtime%2Faurae/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurae-runtime%2Faurae/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aurae-runtime%2Faurae/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aurae-runtime","download_url":"https://codeload.github.com/aurae-runtime/aurae/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248605047,"owners_count":21132099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["daemon","distributed-systems","linux","multitenancy","rust","system-programming"],"created_at":"2024-08-01T19:01:26.766Z","updated_at":"2025-12-15T04:59:33.813Z","avatar_url":"https://github.com/aurae-runtime.png","language":"Rust","readme":"\u003c!-- THE DOCUMENT --\u003e\n\n[![(001) [ubuntu:latest] make auraed-test](https://github.com/aurae-runtime/aurae/actions/workflows/001-tester-ubuntu-make-test-auraed.yml/badge.svg)](https://github.com/aurae-runtime/aurae/actions/workflows/001-tester-ubuntu-make-test-auraed.yml) \n[![(002) [ubuntu:latest] make auraescript-test](https://github.com/aurae-runtime/aurae/actions/workflows/002-tester-ubuntu-make-test-auraescript.yml/badge.svg)](https://github.com/aurae-runtime/aurae/actions/workflows/002-tester-ubuntu-make-test-auraescript.yml)\n[![(003) [ubuntu:latest] make aer-test](https://github.com/aurae-runtime/aurae/actions/workflows/003-tester-ubuntu-make-test-aer.yml/badge.svg)](https://github.com/aurae-runtime/aurae/actions/workflows/003-tester-ubuntu-make-test-aer.yml)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/aurae-runtime/aurae/main/docs/assets/logo/aurae.png\" width=\"450\"\u003e\n\u003c/p\u003e\n\n# Mission\n\nAurae is on a mission to be the most loved and effective way of managing\nworkloads on a node. Our hope is that by bringing a better set of controls to a\nnode, we can unlock brilliant higher order distributed systems in the future.\n\n# Introduction\n\n[Aurae] deploys a memory-safe [^memory-safe] runtime daemon, process manager,\nand PID-1 initialization system to remotely schedule processes, containers, and\nvirtual machines as well as set node configurations (e.g., like networking\nstorage).\n\nThrough system proportioning and enterprise workload isolation techniques, the\nAurae [open-source] project can complement higher order schedulers and control\nplanes (such as Kubernetes) as Aurae supports the usage of multi-tenant\nworkloads and enterprise identities all the way down to the socket layer.\n\n[Aurae] is a proud member of the [Nivenly](https://nivenly.org) foundation.\n\n## FOSDEM 2023 Presentation\n\n - Slides: [Link to presentation](https://docs.google.com/presentation/d/1GxKN5tyv4lV2aZdEOUqy3R9tVCat-vrFJyelgFX7b1A/edit#slide=id.g1eef12fba1d_6_53)\n - Website : [Link to abstract](https://fosdem.org/2023/schedule/event/rust_aurae_a_new_pid_1_for_distributed_systems/)\n \n \u003ca href=\"https://www.youtube.com/watch?v=5a277u4j6fU\" target=\"_blank\"\u003e\u003cimg src=\"http://img.youtube.com/vi/5a277u4j6fU/hqdefault.jpg\" width=\"480\" height=\"360\" border=\"10\" /\u003e\u003c/a\u003e\n\n\n## Project Status\n\n\u003e **STILL IN EARLY DEVELOPMENT!**\u003cbr\u003e\n\u003e **The Aurae project and API can change without notice.**\u003cbr\u003e\n\u003e **Do not run the project in production until further notice!**\n\n- The Aurae project welcomes contributions of all kinds and sizes.\n- Please read the \"[getting involved]\" documentation before contributing to the\n  project.\n- You do not have to know [Rust] to join the project.\n\nBy joining the project in its early stages, you will help to create a milestone\ncontender for corporate distributed systems and automation that will remain\naccessible to anyone.\n\n# **Expanded Overview**\n\nBy [introducing Aurae cells] on top of a [Linux kernel] the control of each\ninternal runtime process on a given node becomes possible. The auraed runtime\nmaintains ownership of every process by managing everything from [PID]-1 to\nnested processes.\n\nMaintainable and predefined [.proto]-files contribute to the core definition of\nthe distributed systems runtime and the standard library. During the build\nprocess, these [.proto]-files can allow for greater customization possibilities.\nThe [TypeScript] file format replaces static manifests (like the [YAML] file\nformat) for direct interactions with a running system.\n\n---\n\n|||\n| :--- | :--- |\n| **Auraed**      | To ensure memory safety, Aurae serves the generic system's runtime daemon ([auraed]).|\n| **AuraeScript** | The [AuraeScript] (a Turing-complete scripting language built on TypeScript) library automatically generates itself from the pre-defined [.proto] files defined in the Aurae standard library.\u003cbr\u003eIt also directly embeds [Deno] source code to provide an SDK and the functionality to attach remote clients for the direct remote communication with Aurae. |\n|||\n\n```typescript\n#!/usr/bin/env auraescript\nlet cells = new runtime.CellServiceClient();\n\nlet allocated = await cells.allocate(\u003cruntime.AllocateCellRequest\u003e{\n  cell: runtime.Cell.fromPartial({\n    name: \"my-cell\",\n    cpus: \"2\",\n  }),\n});\n\nlet started = await cells.start(\u003cruntime.StartExecutableRequest\u003e{\n  executable: runtime.Executable.fromPartial({\n    cellName: \"my-cell\",\n    command: \"sleep 4000\",\n    description: \"Sleep for 4000 seconds\",\n    name: \"sleep-4000\",\n  }),\n});\n```\n\n|||\n| :--- | :--- |\n| **Authentication**               | Aurae extends [SPIFFE]/[SPIRE] (x509 mTLS)-backed identity, authentication (authn), and authorization (authz) in a distributed system down to the Unix domain socket layer. |\n| **Principle of Least Awareness** | A single Aurae instance has no awareness of higher order scheduling mechanisms such as the Kubernetes control plane.                                                        |\n| **Runtime Workloads**            | The Aurae runtime API can manage [virtual machines], [executables], [cells], [pods], and other [spawned Aurae instances].                                                   |\n| **The Aurae Standard Library**   | The Aurae project exposes its functionality as a gRPC API through the [Aurae standard library]. The [V0 API reference] contains the current library definition.             |\n|||\n\n---\n\n\u003c!--\n# **Getting Started**\n## **Building Aurae from Source**\n### **Dependencies**\n### **Prepare the Environment**\n## **Aurae Quick Start**\n### **Running the Daemon**\n### **Running your first Cell**\n## **Developing on an M1**\n### **Environment**\n### **VM Setup**\n### **CLion Setup**\n### **Back to the VM (setting up Aurae)** --\u003e\n\n\u003c!-- All the links!! --\u003e\n\u003c!-- +Footnotes\n\n[^cells]:\n    Additionally, with Aurae cells, the project provides various ways to partition\n    and slice up systems allowing for isolation strategies in enterprise workloads.\n\n[^compare]:\n    As a low-level building block, the Aurae Project works well with any\n    higher-order system by offering a thoughtful set of API calls and controls for\n    managing workloads on a single node.\n\n[^medium]:\n    Learn more from the [Medium Blog: Why fix Kubernetes and Systemd?] by\n    [Kris Nóva]).\n--\u003e\n\n[^memory-safe]: The reliability and effectiveness of the Rust systems language make it an excellent choice for the development of the Aurae project. [Learn more about Rust]\n\n\u003c!-- +Status Badges --\u003e\n\n[workflow in progress: deploy]: https://github.com/aurae-runtime/aurae/actions/workflows/291-deploy-website-documentation-aurae-builder-make-docs.yml/badge.svg?branch=main \"https://github.com/aurae-runtime/aurae/actions/workflows/291-deploy-website-documentation-aurae-builder-make-docs.yml\"\n[workflow in progress: documentation]: https://github.com/aurae-runtime/aurae/actions/workflows/290-check-website-documentation-aurae-builder-make-docs.yml/badge.svg \"https://github.com/aurae-runtime/aurae/actions/workflows/290-check-website-documentation-aurae-builder-make-docs.yml\"\n[workflow in progress: build]: https://github.com/aurae-runtime/aurae/actions/workflows/001-tester-ubuntu-make-test.yml/badge.svg \"https://github.com/aurae-runtime/aurae/actions/workflows/001-tester-ubuntu-make-test.yml\"\n\n\u003c!-- +aurae.io/ --\u003e\n\n[aurae cells]: https://aurae.io/blog/24-10-2022-aurae-cells/ \"Learn more about Aurae cells\"\n[aurae standard library]: https://aurae.io/stdlib/ \"Learn more about Auraes standard library\"\n[aurae]: https://aurae.io/ \"Visit aurae.io\"\n[cells]: https://aurae.io/stdlib/v0/#cell \"Processes running in a shared cgroup namespace\"\n[executables]: https://aurae.io/stdlib/v0/#executable \"Basic runtime processes\"\n[getting involved]: https://aurae.io/community/#getting-involved \"Participate and contribute!\"\n[pods]: https://aurae.io/stdlib/v0/#pod \"Cells running in spawned instances\"\n[spawned aurae instances]: https://aurae.io/stdlib/v0/#instance \"Short lived nested virtual instances of Aurae\"\n[v0 api reference]: https://aurae.io/stdlib/v0/ \"Learn more about the current Aurae library definitions\"\n[virtual machines]: https://aurae.io/stdlib/v0/#virtualmachine \"Long-lived arbitrary virtual machines\"\n[introducing aurae cells]: https://aurae.io/blog/2022-10-24-aurae-cells/#IntroducingAuraeCells \"Aurae Blog: 2022-10-24\"\n\n\u003c!-- +Wiki --\u003e\n\n[grpc]: https://en.wikipedia.org/wiki/GRPC \"Read about gRPC\"\n[mtls]: https://en.wikipedia.org/wiki/Mutual_authentication#mTLS \"Read about mTLS\"\n[pid]: https://en.wikipedia.org/wiki/Process_identifier \"Read about PID\"\n\n\u003c!-- +Github --\u003e\n\n[auraescript]: https://github.com/aurae-runtime/aurae/tree/main/auraescript \"Check out the Auraescript on Github 🌟\"\n[containerd]: https://github.com/containerd/containerd \"Read about containerd on GH\"\n[firecracker]: https://github.com/firecracker-microvm/firecracker \"Read about firecracker on Github\"\n[kris nóva]: https://github.com/krisnova \"Check out Kris Nóva on Github 🌟\"\n[open-source]: https://github.com/aurae-runtime/aurae/blob/main/LICENSE \"Apache License 2.0\"\n[spiffe]: https://github.com/spiffe \"Read about SPIFFE\"\n[spire]: https://github.com/spiffe/spire \"Read about SPIRE\"\n\n\u003c!-- +External links --\u003e\n\n[.proto]: https://protobuf.dev/ \"Read more about Protocol Buffers\"\n[deno]: https://deno.land \"Read more about Deno\"\n[learn more about rust]: https://doc.rust-lang.org/book/ \"The book about the Rust programming language\"\n[linux kernel]: https://git.kernel.org/ \"Learn about the Linux kernels\"\n[medium blog: why fix kubernetes and systemd?]: https://medium.com/@kris-nova/why-fix-kubernetes-and-systemd-782840e50104 \"Learn more about the possibilies of Aurae\"\n[rust]: https://www.rust-lang.org/ \"Read and learn more about the Rust language\"\n[systemd]: https://www.freedesktop.org/wiki/Software/systemd/ \"Read more about Systemd\"\n[typescript]: https://www.typescriptlang.org/docs/handbook/ \"Read more about TypeScript\"\n[yaml]: https://yaml.org/ \"Read more about YAML\"\n","funding_links":[],"categories":["Rust","rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faurae-runtime%2Faurae","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faurae-runtime%2Faurae","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faurae-runtime%2Faurae/lists"}