{"id":13499519,"url":"https://github.com/passcod/cni-plugins","last_synced_at":"2025-12-30T04:35:43.222Z","repository":{"id":57606959,"uuid":"352305531","full_name":"passcod/cni-plugins","owner":"passcod","description":"Library to create CNI plugins in Rust, and a set of plugins","archived":true,"fork":false,"pushed_at":"2022-04-22T01:49:43.000Z","size":612,"stargazers_count":18,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-08-09T17:52:26.095Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/passcod.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-28T10:59:33.000Z","updated_at":"2024-07-20T11:05:44.000Z","dependencies_parsed_at":"2022-09-12T15:12:30.581Z","dependency_job_id":null,"html_url":"https://github.com/passcod/cni-plugins","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Fcni-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Fcni-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Fcni-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Fcni-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passcod","download_url":"https://codeload.github.com/passcod/cni-plugins/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222465358,"owners_count":16988994,"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":[],"created_at":"2024-07-31T22:00:34.018Z","updated_at":"2025-12-12T13:20:13.194Z","avatar_url":"https://github.com/passcod.png","language":"Rust","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Adopt-a-crate!\n**I am no longer working with Nomad, Consul, Kubernetes, or container runtime sysadmin, and so this repository is not maintained. Feel free to fork!** If you're committed, email me to get the crate name transferred.\n\n[![Crate release version](https://flat.badgen.net/crates/v/cni-plugin)](https://crates.io/crates/cni-plugin)\n[![Crate license: Apache 2.0 or MIT](https://flat.badgen.net/badge/license/Apache%202.0%20or%20MIT)][copyright]\n![MSRV: latest stable](https://flat.badgen.net/badge/MSRV/latest%20stable/orange)\n[![CI status](https://github.com/passcod/cni-plugins/actions/workflows/check.yml/badge.svg)](https://github.com/passcod/cni-plugins/actions/workflows/check.yml)\n\n# CNI Plugins\n\n_A library for writing CNI plugins in Rust, and some plugins built with it._\n\n- Plugins:\n  * [host-routes](./host-routes), to add routes to the host\n  * [host-neigh](./host-neigh), to add neighbours to the host\n  * [ipam-delegated](./ipam-delegated), to stack multiple IPAM plugins\n  * [ipam-ds-nomad](./ipam-ds-nomad), a **d**elegated IPAM plugin which\n    **s**elects IP pool configuration from a Nomad job's metadata\n  * [ipam-ds-static](./ipam-ds-static), a **d**elegated IPAM plugin which\n    **s**elects IP pool configuration from the network configuration\n  * [ipam-da-consul](./ipam-da-consul), a **d**elegated IPAM plugin which\n    **a**llocates IPs from a pool stored in Consul KV\n- Guides:\n  * [Standard tooling](./docs/Standard-Tooling.md)\n  * [Hello world plugin](./docs/Plugin-Hello-World.md)\n- **[API documentation][docs]** for the `cni-plugin` crate.\n- CNI information on the [cni.dev](https://cni.dev) website.\n- [Dual-licensed][copyright] with Apache 2.0 and MIT.\n\n[copyright]: ./COPYRIGHT\n[docs]: https://docs.rs/cni-plugin\n\n## Obtain plugins\n\nNote that these plugins should not be considered solid implementations. They\nwork, and I use them, and eventually they'll surely evolve into robust\nsoftware, but for now consider them beta quality, and alpha stability.\n\n### Flavours\n\nThe `cni-plugins` library can be built with a feature `release-logs` that\nenables verbose logging to a file in release builds, which usually is reserved\nfor debug (development) builds. Warning/error logs are always copied to stderr.\n\nIt's up to each plugin to carry through the feature, but all in this repo do.\nThe pre-build binary releases available below also come in these two flavours,\nwith the `-verbose` suffix for productions builds with verbose logging to file.\n\nLogs are appended to `/var/log/cni/name-of-plugin.log` in production, and to\n`name-of-plugin.log` in the working directory in development.\n\n### From binary release\n\nThe [release tab on GitHub](https://github.com/passcod/noodle/releases).\n\nBuilds are available for x86-64 Linux, but adding architectures is often\ntrivial, so please ask if needed.\n\n### From source\n\nClone this repo, [install the Rust toolchain](https://rustup.rs), and build\nwith:\n\n```bash\n# Standard production binary\ncargo build --release\n\n# Log-enabled production binary\ncargo build --release --features release-logs\n\n# Debug binary\ncargo build\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasscod%2Fcni-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpasscod%2Fcni-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasscod%2Fcni-plugins/lists"}