{"id":20679392,"url":"https://github.com/jmgilman/vaultrs","last_synced_at":"2025-04-14T06:07:15.799Z","repository":{"id":39883943,"uuid":"394518261","full_name":"jmgilman/vaultrs","owner":"jmgilman","description":"An asynchronous Rust client library for the Hashicorp Vault API","archived":false,"fork":false,"pushed_at":"2025-02-21T16:38:23.000Z","size":600,"stargazers_count":110,"open_issues_count":28,"forks_count":68,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-14T06:07:06.583Z","etag":null,"topics":["client","hashicorp","http","rust","vault"],"latest_commit_sha":null,"homepage":"https://docs.rs/vaultrs","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/jmgilman.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-10T03:56:19.000Z","updated_at":"2025-03-29T20:27:25.000Z","dependencies_parsed_at":"2024-03-09T15:23:55.805Z","dependency_job_id":"371326f0-7f19-40cd-a6ed-2f6fcf18a67b","html_url":"https://github.com/jmgilman/vaultrs","commit_stats":{"total_commits":165,"total_committers":17,"mean_commits":9.705882352941176,"dds":"0.12727272727272732","last_synced_commit":"42c2257e204835714ee0ff237cba294cd39b373d"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmgilman%2Fvaultrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmgilman%2Fvaultrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmgilman%2Fvaultrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmgilman%2Fvaultrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmgilman","download_url":"https://codeload.github.com/jmgilman/vaultrs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248830397,"owners_count":21168272,"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":["client","hashicorp","http","rust","vault"],"created_at":"2024-11-16T21:25:43.696Z","updated_at":"2025-04-14T06:07:15.777Z","avatar_url":"https://github.com/jmgilman.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# vaultrs\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://crates.io/crates/vaultrs\"\u003e\n        \u003cimg src=\"https://img.shields.io/crates/v/vaultrs\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://docs.rs/vaultrs\"\u003e\n        \u003cimg src=\"https://img.shields.io/docsrs/vaultrs\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://developer.hashicorp.com/vault/\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Vault-1.8.2-green\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/jmgilman/vaultrs/actions/workflows/ci.yml\"\u003e\n        \u003cimg src=\"https://github.com/jmgilman/vaultrs/actions/workflows/ci.yml/badge.svg\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e An asynchronous Rust client library for the [Hashicorp Vault][1] API\n\nThe following features are currently supported:\n\n- Auth\n  - [AppRole](https://developer.hashicorp.com/vault/docs/auth/approle)\n  - [AWS](https://developer.hashicorp.com/vault/docs/auth/aws)\n  - [JWT/OIDC](https://developer.hashicorp.com/vault/api-docs/auth/jwt)\n  - [Kubernetes](https://developer.hashicorp.com/vault/docs/auth/kubernetes)\n  - [Token](https://developer.hashicorp.com/vault/docs/auth/token)\n  - [Certificate](https://developer.hashicorp.com/vault/docs/auth/cert)\n  - [Userpass](https://developer.hashicorp.com/vault/docs/auth/userpass)\n- Secrets\n  - [AWS](https://developer.hashicorp.com/vault/docs/secrets/aws)\n  - [Databases](https://developer.hashicorp.com/vault/api-docs/secret/databases)\n  - [KV v1](https://developer.hashicorp.com/vault/docs/secrets/kv/kv-v1)\n  - [KV v2](https://developer.hashicorp.com/vault/docs/secrets/kv/kv-v2)\n  - [PKI](https://developer.hashicorp.com/vault/docs/secrets/pki)\n  - [SSH](https://developer.hashicorp.com/vault/docs/secrets/ssh)\n  - [Transit](https://developer.hashicorp.com/vault/api-docs/secret/transit)\n- Sys\n  - [Health](https://developer.hashicorp.com/vault/api-docs/system/health)\n  - [Policies](https://developer.hashicorp.com/vault/api-docs/system/policy)\n  - [Sealing](https://developer.hashicorp.com/vault/api-docs/system/seal)\n  - [Wrapping](https://developer.hashicorp.com/vault/docs/concepts/response-wrapping)\n\nSee something missing?\n[Open an issue](https://github.com/jmgilman/vaultrs/issues/new).\n\n## Installation\n\nFirst, choose one of the two TLS implementations for `vaultrs`' connection to\nVault:\n\n- `rustls` (default) to use [Rustls](https://github.com/rustls/rustls)\n- `native-tls` to use\n  [rust-native-tls](https://github.com/sfackler/rust-native-tls), which builds\n  on your platform-specific TLS implementation.\n\nThen, add `vaultrs` as a dependency to your cargo.toml:\n\n1. To use [Rustls](https://github.com/rustls/rustls), import as follows:\n\n```toml\n[dependencies]\nvaultrs = \"0.7.4\"\n```\n\n2. To use [rust-native-tls](https://github.com/sfackler/rust-native-tls), which\n   builds on your platform-specific TLS implementation, specify:\n\n```toml\n[dependencies]\nvaultrs = { version = \"0.7.4\", default-features = false, features = [ \"native-tls\" ] }\n```\n\n## Usage\n\n### Setup the client\n\nThe client is used to configure the connection to Vault and is required to be\npassed to all API calls for execution. Behind the scenes it uses an asynchronous\nclient from [Reqwest](https://docs.rs/reqwest/) for communicating to Vault.\n\n```rust\nuse vaultrs::client::{VaultClient, VaultClientSettingsBuilder};\n\n// Create a client\nlet client = VaultClient::new(\n    VaultClientSettingsBuilder::default()\n        .address(\"https://127.0.0.1:8200\")\n        .token(\"TOKEN\")\n        .build()\n        .unwrap()\n).unwrap();\n```\n\nFor more usages, take a look at [the documentation][6]\n\n## Error Handling and Tracing\n\nAll errors generated by this crate are wrapped in the `ClientError` enum\nprovided by the crate. API warnings are automatically captured via `tracing` and\nAPI errors are captured and returned as their own variant. Connection related\nerrors from `rustify` are wrapped and returned as a single variant.\n\nAll top level API operations are instrumented with `tracing`'s `#[instrument]`\nattribute.\n\n## Testing\n\nSee the the [tests][3] directory for tests. Run tests with `cargo test`.\n\n**Note**: All tests rely on bringing up a local Vault development server using\nDocker. In order to run tests Docker must be running locally (Docker Desktop\nworks). The first run will be longer than other because it will fetch images.\n\nSome long-running tests are ignored by default locally. To run them do:\n\n```sh\ncargo test -- --include-ignored\n```\n\n## Contributing\n\nCheck out the [issues][2] for items needing attention or submit your own and\nthen:\n\n1. Fork the repo (\u003chttps://github.com/jmgilman/vaultrs/fork\u003e)\n2. Create your feature branch (git checkout -b feature/fooBar)\n3. Commit your changes (git commit -am 'Add some fooBar')\n4. Push to the branch (git push origin feature/fooBar)\n5. Create a new Pull Request\n\nSee [CONTRIBUTING][5] for extensive documentation on the\narchitecture of this library and how to add additional functionality to it.\n\n[1]: https://developer.hashicorp.com/vault/\n[2]: https://github.com/jmgilman/vaultrs/issues\n[3]: https://github.com/jmgilman/vaultrs/tree/master/vaultrs-tests/tests/api_tests\n[5]: https://github.com/jmgilman/vaultrs/tree/master/CONTRIBUTING.md\n[6]: https://docs.rs/vaultrs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmgilman%2Fvaultrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmgilman%2Fvaultrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmgilman%2Fvaultrs/lists"}