{"id":22978250,"url":"https://github.com/bitwarden/sdk-sm","last_synced_at":"2025-05-16T03:04:09.792Z","repository":{"id":144702408,"uuid":"616551499","full_name":"bitwarden/sdk-sm","owner":"bitwarden","description":"Bitwarden Secrets Manager SDK.","archived":false,"fork":false,"pushed_at":"2025-05-13T09:29:57.000Z","size":6429,"stargazers_count":304,"open_issues_count":93,"forks_count":53,"subscribers_count":25,"default_branch":"main","last_synced_at":"2025-05-13T10:38:54.048Z","etag":null,"topics":["bitwarden","rust","sdk"],"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/bitwarden.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":"support/scripts/schemas.ts","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-20T15:54:55.000Z","updated_at":"2025-05-05T10:15:13.000Z","dependencies_parsed_at":"2023-09-21T21:00:36.725Z","dependency_job_id":"5910c0f6-d8f7-42a4-912f-558670d278d9","html_url":"https://github.com/bitwarden/sdk-sm","commit_stats":null,"previous_names":["bitwarden/sdk-sm","bitwarden/sdk"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fsdk-sm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fsdk-sm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fsdk-sm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fsdk-sm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitwarden","download_url":"https://codeload.github.com/bitwarden/sdk-sm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254448564,"owners_count":22072761,"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":["bitwarden","rust","sdk"],"created_at":"2024-12-15T01:02:53.671Z","updated_at":"2025-05-16T03:04:04.782Z","avatar_url":"https://github.com/bitwarden.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Bitwarden Secrets Manager SDK\n\nThis repository houses the Bitwarden Secret Manager SDK. The SDK is written in Rust and provides a\nRust API, CLI and various language bindings.\n\n# We're Hiring!\n\nInterested in contributing in a big way? Consider joining our team! We're hiring for many positions.\nPlease take a look at our [Careers page](https://bitwarden.com/careers/) to see what opportunities\nare currently open as well as what it's like to work at Bitwarden.\n\n## Getting Started\n\n### Linux / Mac / Windows\n\n```bash\ncargo build\n```\n\n### Windows on ARM\n\nTo build, you will need the following in your PATH:\n\n- [Python](https://www.python.org)\n- [Clang](https://clang.llvm.org)\n  - We recommend installing this via the\n    [Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022)\n\n## Documentation\n\nPlease refer to our [Contributing Docs](https://contributing.bitwarden.com/) for\n[getting started](https://contributing.bitwarden.com/getting-started/sdk/) instructions and\n[architectural documentation](https://contributing.bitwarden.com/architecture/sdk/).\n\nYou can also browse the latest published documentation on\n[docs.rs](https://docs.rs/bitwarden/latest/bitwarden/).\n\n## Crates\n\nThe project is structured as a monorepo using cargo workspaces. Some of the more noteworthy crates\nare:\n\n- [`bitwarden`](./crates/bitwarden/): Rust friendly API for interacting with the secrets manager.\n- [`bitwarden-c`](./crates/bitwarden-c/): C bindings for FFI interop.\n- [`bitwarden-json`](./crates/bitwarden-json/): JSON wrapper around the `bitwarden` crate. Powers\n  the other language bindings.\n- [`bitwarden-napi`](./crates/bitwarden-napi/): Node-API bindings.\n- [`bws`](./crates/bws/): CLI for interacting with the [Bitwarden Secrets Manager][secrets-manager].\n  Review the [CLI documentation][bws-help].\n- [`sdk-schemas`](./crates/sdk-schemas/): Generator for the _json schemas_.\n\n## Schemas\n\nTo minimize the amount of work required to support additional bindings the project is structured\naround a `json` based API. With every binding only needing to implement one method, namely\n`run_command`.\n\nTo ensure type safety in the API, _json schemas_ are generated from the rust structs in `bitwarden`\nusing [schemars](https://crates.io/crates/schemars). The _json schemas_ are later used to generate\nthe API bindings for each language using [QuickType](https://github.com/quicktype/quicktype).\n\n```bash\nnpm run schemas\n```\n\n## Developer tools\n\nThis project recommends the use of certain developer tools, and also includes configurations for\nthem to make developers lives easier. The use of these tools is optional and they might require a\nseparate installation step.\n\nThe list of developer tools is:\n\n- `Visual Studio Code`: We provide a recommended extension list which should show under the\n  `Extensions` tab when opening this project with the editor. We also offer a few launch settings\n  and tasks to build and run the SDK\n- `bacon`: This is a CLI background code checker. We provide a configuration file with some of the\n  most common tasks to run (`check`, `clippy`, `test`, `doc` - run `bacon -l` to see them all). This\n  tool needs to be installed separately by running `cargo install bacon --locked`.\n- `nexttest`: This is a new and faster test runner, capable of running tests in parallel and with a\n  much nicer output compared to `cargo test`. This tool needs to be installed separately by running\n  `cargo install cargo-nextest --locked`. It can be manually run using\n  `cargo nextest run --all-features`\n\n## Cargo fmt\n\nWe use certain unstable features for formatting which require the nightly version of cargo-fmt.\n\nTo install:\n\n```\nrustup component add rustfmt --toolchain nightly\n```\n\nTo run:\n\n```\ncargo +nightly fmt\n```\n\n## Contribute\n\nCode contributions are welcome! Please commit any pull requests against the `main` branch. Learn\nmore about how to contribute by reading the\n[Contributing Guidelines](https://contributing.bitwarden.com/contributing/). Check out the\n[Contributing Documentation](https://contributing.bitwarden.com/) for how to get started with your\nfirst contribution.\n\nSecurity audits and feedback are welcome. Please open an issue or email us privately if the report\nis sensitive in nature. You can read our security policy in the [`SECURITY.md`](SECURITY.md) file.\nWe also run a program on [HackerOne](https://hackerone.com/bitwarden).\n\nNo grant of any rights in the trademarks, service marks, or logos of Bitwarden is made (except as\nmay be necessary to comply with the notice requirements as applicable), and use of any Bitwarden\ntrademarks must comply with\n[Bitwarden Trademark Guidelines](https://github.com/bitwarden/server/blob/main/TRADEMARK_GUIDELINES.md).\n\n[secrets-manager]: https://bitwarden.com/products/secrets-manager/\n[bws-help]: https://bitwarden.com/help/secrets-manager-cli/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwarden%2Fsdk-sm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitwarden%2Fsdk-sm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwarden%2Fsdk-sm/lists"}