back to home

jmgilman / vaultrs

An asynchronous Rust client library for the Hashicorp Vault API

145 stars
83 forks
34 issues
RustNixShell

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing jmgilman/vaultrs in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/jmgilman/vaultrs)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

vaultrs > An asynchronous Rust client library for the [Hashicorp Vault][1] and [OpenBao][7] API The following features are currently supported: • Auth • AppRole • AWS (Only Vault is tested, as for OpenBao its an external plugin) • JWT/OIDC • Kubernetes • Token • Certificate • Userpass • Secrets • AWS • Cubbyhole • Databases • KV v1 • KV v2 • PKI • SSH • Transit • Sys • Health • Policies • Sealing • Wrapping See something missing? Open an issue. Installation First, choose one of the two TLS implementations for ' connection to Vault: • (default) to use Rustls • to use rust-native-tls, which builds on your platform-specific TLS implementation. Then, add as a dependency to your cargo.toml: • To use Rustls, import as follows: • To use rust-native-tls, which builds on your platform-specific TLS implementation, specify: Usage Setup the client The client is used to configure the connection to Vault and is required to be passed to all API calls for execution. Behind the scenes it uses an asynchronous client from Reqwest for communicating to Vault. For more usages, take a look at [the documentation][6] Error Handling and Tracing All errors generated by this crate are wrapped in the enum provided by the crate. API warnings are automatically captured via and API errors are captured and returned as their own variant. Connection related errors from are wrapped and returned as a single variant. All top level API operations are instrumented with 's attribute. Testing See the the [tests][3] directory for tests. Run tests with . **Note**: All tests rely on bringing up a local Vault development server using Docker. In order to run tests Docker must be running locally (Docker Desktop works). The first run will be longer than other because it will fetch images. Some long-running tests are ignored by default locally. To run them do: Contributing Check out the [issues][2] for items needing attention or submit your own and then: • Fork the repo ( ) • Create your feature branch (git checkout -b feature/fooBar) • Commit your changes (git commit -am 'Add some fooBar') • Push to the branch (git push origin feature/fooBar) • Create a new Pull Request See [CONTRIBUTING][5] for extensive documentation on the architecture of this library and how to add additional functionality to it. [1]: https://developer.hashicorp.com/vault/ [2]: https://github.com/jmgilman/vaultrs/issues [3]: https://github.com/jmgilman/vaultrs/tree/master/vaultrs-tests/tests/api_tests [5]: https://github.com/jmgilman/vaultrs/tree/master/CONTRIBUTING.md [6]: https://docs.rs/vaultrs [7]: https://openbao.org/