{"id":13488747,"url":"https://github.com/oam-dev/rudr","last_synced_at":"2025-09-29T02:31:58.313Z","repository":{"id":69821021,"uuid":"189059066","full_name":"oam-dev/rudr","owner":"oam-dev","description":"A Kubernetes implementation of the Open Application Model specification","archived":true,"fork":false,"pushed_at":"2020-09-03T17:21:59.000Z","size":4200,"stargazers_count":1536,"open_issues_count":50,"forks_count":136,"subscribers_count":81,"default_branch":"master","last_synced_at":"2024-09-27T04:41:15.962Z","etag":null,"topics":["cloud-native","distributed-applications","kubernetes","serverless"],"latest_commit_sha":null,"homepage":"https://oam.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oam-dev.png","metadata":{"files":{"readme":"README-old.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":"governance.md","roadmap":null,"authors":null}},"created_at":"2019-05-28T15:50:38.000Z","updated_at":"2024-09-03T21:02:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"9dd586fc-dad2-40f0-8250-f90d4c81fde3","html_url":"https://github.com/oam-dev/rudr","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oam-dev%2Frudr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oam-dev%2Frudr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oam-dev%2Frudr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oam-dev%2Frudr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oam-dev","download_url":"https://codeload.github.com/oam-dev/rudr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234583683,"owners_count":18856280,"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":["cloud-native","distributed-applications","kubernetes","serverless"],"created_at":"2024-07-31T18:01:21.146Z","updated_at":"2025-09-29T02:31:52.882Z","avatar_url":"https://github.com/oam-dev.png","language":"Rust","readme":"# Rudr: A Kubernetes Implementation of the Open Application Model\n\n![](https://github.com/oam-dev/rudr/workflows/Rust/badge.svg)\n\nRudr is an implementation of the [Open Application Model (OAM) 1.0.0-alpha1](https://github.com/oam-dev/spec/releases/tag/v1.0.0-alpha.1) for Kubernetes. \n\n***Note: Rudr is a reference implementation for the initial working draft of the OAM specification. It does not reflect the most recent version of the OAM specification.***\n\n## Why Rudr?\n\nKubernetes API resources focused on container infrastructure rather than the applications per se. Yet, application developers think in terms of application architecture, not of infrastructure.\n\n**Rudr provides application level primitives for Kubernetes that enable:**\n\n- The ability to define application (e.g., WordPress) in Kubernetes. \n- The ability to define operational capability (e.g., auto-scaling policy, rather than HPA) in Kubernetes.\n- A portable and self-descriptive application description which includes every dependency and operational ability the application requires to run.  \n- Building an application centric abstraction atop container infrastructure.\n\n**Rudr can be used by:**\n\n- Developers who want to describe application from developer's view, rather than learning low level primitives.\n- Operators who want to focus on strategies of operating the application, rather than infrastructure details.\n- Kubernetes engineers who want to define \"application\" in Kubernetes, or expose application level API to developers and operators, rather than full Kubernetes API.\n- PaaS engineers who want to build a serverless application platform atop Kubernetes, with minimal effort.\n- Software distributors who want to \"define once, deploy everywhere\", regardless of the differences of Kubernetes providers on multi-cloud.\n\n## Get started\n\nDefine and deploy a [helloworld-python](./docs/how-to/create_component_from_scratch.md) application with Rudr.\n\n## How does Rudr work?\n\n![rudr arch](./docs/media/rudr-how-it-works.png)\n\nRudr defines [OAM primitives](https://github.com/oam-dev/spec/blob/master/2.overview_and_terminology.md) as Kubernetes Custom Resource Definitions (CRDs). Hence, Rudr is able to provide OAM style application level APIs including [Components](./docs/concepts/component-schematic.md) for developers to define applications, and [Traits](./docs/concepts/traits.md) for operators to define operational capabilities. Meanwhile, infra operators still work on Kubernetes itself.\n\nRudr controllers will maintain the mapping between OAM CRDs (e.g., Component) and Kubernetes API resources (e.g., Deployment).\n\n## Try more things out yourself \n\nRead the [documentation list](./docs/README.md) for more options. Some highlights:\n- [Getting started tutorials](https://github.com/oam-dev/rudr/tree/master/docs#get-started)\n- [Learn Open Application Model concepts in Kubernetes](https://github.com/oam-dev/rudr/tree/master/docs#concepts)\n- [Learn advanced How-To topics](https://github.com/oam-dev/rudr/tree/master/docs#how-tos)\n  - For example, use Rudr with Helm and Kustmoize and migrate existing Kubernetes resources to Rudr.\n- [Install and play with more workload types](https://github.com/oam-dev/rudr/tree/master/docs#extended-workloads)\n- [Developing Rudr](https://github.com/oam-dev/rudr/tree/master/docs#extended-workloads)\n- [FAQ](https://github.com/oam-dev/rudr/blob/master/docs/faq.md)\n\n## More samples and demos\n\n- [OAM samples repository](https://github.com/oam-dev/samples)\n\n## Roadmap\n\nCurrently, Rudr relies on pre-installed workload types and traits to accomplish the task. In next release, Rudr will provide a plugin mechanism to integrate any Kubernetes Operator as workload type or operational capability. The goal is to allow users to assemble Operators ecosystem as a serverless application platform by \"one click\".\n\n## Contributing\n\nThis project welcomes contributions and suggestions. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details. Below are links to join the bi-weekly community meetings and our meeting notes. Community Slack channels \u0026 mailing lists will be added shortly (~ 10/1).\n\n| Item        | Value  |\n|---------------------|---|\n| Mailing List | [oam-dev@@googlegroups.com](https://groups.google.com/forum/#!forum/oam-dev) |\n| Meeting Information | [Bi-weekly (Starting Oct 22, 2019), Tuesdays 10:30AM PST](https://calendar.google.com/calendar?cid=dDk5YThyNGIwOWJyYTJxajNlbWI0a2FvdGtAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ) |\n|  | [Bi-weekly APAC (Starting Dec 24, 2019), Tuesdays 1:00PM GMT+8](https://calendar.google.com/event?action=TEMPLATE\u0026tmeid=MzJnbHR2b3R1bHYxMG0wc2YybDJjZmhuc2pfMjAxOTEyMjRUMDUwMDAwWiBmZW5namluZ2NoYW9AbQ\u0026tmsrc=fengjingchao%40gmail.com\u0026scp=ALL)|\n| Meeting Link | https://zoom.us/j/271516061  |\n| IM Channel       | https://gitter.im/oam-dev/  |\n| Meeting Notes       | [Notes](https://docs.google.com/document/d/1nqdFEyULekyksFHtFvgvFAYE-0AMHKoS3RMnaKsarjs/edit?usp=sharing) |\n| Twitter      | [@oam_dev](https://twitter.com/oam_dev) |\n\n## Governance\n\nThis project follows governance structure of numerous other open source projects. See [governance.md](governance.md) for more details.\n\n## License\n\nThis project is available under the terms of the MIT license. See [LICENSE.txt](LICENSE.txt).\n","funding_links":[],"categories":["Rust","Applications","serverless"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foam-dev%2Frudr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foam-dev%2Frudr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foam-dev%2Frudr/lists"}