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.