Skip to main content

Secrets Manager

The Secrets Manager SDK is designed for external use. The SDK is written in Rust and provides bindings for multiple languages.

bitwarden crate​

The bitwarden crate represents the entry point for consumers of the SDK and is responsible for providing a cohesive interface. The crate re-exports functionality of the internal crates and contains very little logic itself.

Bindings​

The Secrets Manager SDK provides bindings for multiple languages. Currently we utilize a mix of hand written bindings for a C API, and generated bindings.

Many language bindings utilize the bitwarden-c crate that exposes a C API. This is then combined with hand written bindings for the specific language. Since manually writing FFI bindings is time consuming and difficult, a JSON-based API is provided by the bitwarden-json crate. This allows the language bindings to simply contain three FFI functions, init, run_command and free_memory.