{"id":20675555,"url":"https://github.com/bitwarden/sdk-internal","last_synced_at":"2025-04-07T05:10:03.712Z","repository":{"id":259075095,"uuid":"876238261","full_name":"bitwarden/sdk-internal","owner":"bitwarden","description":"Bitwarden internal SDK.","archived":false,"fork":false,"pushed_at":"2025-04-05T10:12:39.000Z","size":5097,"stargazers_count":69,"open_issues_count":25,"forks_count":9,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-04-05T11:23:00.736Z","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":null,"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/build-api.sh","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-21T16:20:25.000Z","updated_at":"2025-04-04T15:23:27.000Z","dependencies_parsed_at":"2024-12-16T12:19:45.825Z","dependency_job_id":"2fb83d42-8f7b-4f3a-9dbe-68ea73dbc4ba","html_url":"https://github.com/bitwarden/sdk-internal","commit_stats":{"total_commits":986,"total_committers":37,"mean_commits":26.64864864864865,"dds":0.6926977687626774,"last_synced_commit":"42e7f45b1899046cafb414e4c617c81bfc254029"},"previous_names":["bitwarden/sdk-internal"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fsdk-internal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fsdk-internal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fsdk-internal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fsdk-internal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitwarden","download_url":"https://codeload.github.com/bitwarden/sdk-internal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247595334,"owners_count":20963943,"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-11-16T21:09:48.681Z","updated_at":"2025-04-07T05:10:03.681Z","avatar_url":"https://github.com/bitwarden.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bitwarden Internal SDK\n\nThis repository houses the internal Bitwarden SDKs. We also provide a public\n[Secrets Manager SDK](https://github.com/bitwarden/sdk-sm).\n\n### Disclaimer\n\nThe password manager SDK is not intended for public use and is not supported by Bitwarden at this\nstage. It is solely intended to centralize the business logic and to provide a single source of\ntruth for the internal applications. As the SDK evolves into a more stable and feature complete\nstate we will re-evaluate the possibility of publishing stable bindings for the public. **The\npassword manager interface is unstable and will change without warning.**\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:\n\n- [docs.rs](https://docs.rs/bitwarden/latest/bitwarden/) for the public SDK.\n- Or for developers of the SDK, view the internal\n  [API documentation](https://sdk-api-docs.bitwarden.com/bitwarden_core/index.html) which includes\n  private items.\n\n## Crates\n\nThe project is structured as a monorepo using cargo workspaces. Some of the more noteworthy crates\nare:\n\n- [`bitwarden-api-api`](./crates/bitwarden-api-api/): Auto-generated API bindings for the API\n  server.\n- [`bitwarden-api-identity`](./crates/bitwarden-api-identity/): Auto-generated API bindings for the\n  Identity server.\n- [`bitwarden-core`](./crates/bitwarden-core/): The core functionality consumed by the other crates.\n- [`bitwarden-crypto`](./crates/bitwarden-crypto/): Crypto library.\n- [`bitwarden-wasm-internal`](./crates/bitwarden-wasm-internal/): WASM bindings for the internal\n  SDK.\n- [`bitwarden-uniffi`](./crates/bitwarden-uniffi/): Mobile bindings for swift and kotlin using\n  [UniFFI](https://github.com/mozilla/uniffi-rs/).\n\n## API Bindings\n\nWe autogenerate the server bindings using\n[openapi-generator](https://github.com/OpenAPITools/openapi-generator). To do this we first need to\nbuild the internal swagger documentation.\n\n### Swagger generation\n\nThe first step is to generate the swagger documents from the server repository.\n\n```bash\n# src/Api\ndotnet swagger tofile --output ../../api.json ./bin/Debug/net8.0/Api.dll internal\n\n# src/Identity\nASPNETCORE_ENVIRONMENT=development dotnet swagger tofile --output ../../identity.json ./bin/Debug/net8.0/Identity.dll v1\n```\n\n### OpenApi Generator\n\nTo generate a new version of the bindings run the following script from the root of the SDK project.\n\n```bash\n./support/build-api.sh\n```\n\nThis project uses customized templates which lives in the `support/openapi-templates` directory.\nThese templates resolves some outstanding issues we've experienced with the rust generator. But we\nstrive towards modifying the templates as little as possible to ease future upgrades.\n\n### Note\n\n- If you don't have the nightly toolchain installed, the `build-api.sh` script will install it for\n  you.\n- This process also changes the `Cargo.toml` file. When creating a PR updating the bindings, please\n  revert (do not include) the updates to the `Cargo.toml` file.\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## Formatting \u0026 Linting\n\nThis repository uses various tools to check formatting and linting before it's merged. It's\nrecommended to run the checks prior to submitting a PR.\n\n### Installation\n\nPlease see the [lint.yml](./.github/workflows/lint.yml) file for example installation commands \u0026\nversions. Here are the cli tools we use:\n\n- Nightly [cargo fmt](https://github.com/rust-lang/rustfmt) and\n  [cargo udeps](https://github.com/est31/cargo-udeps)\n- [rust clippy](https://github.com/rust-lang/rust-clippy)\n- [cargo sort](https://github.com/DevinR528/cargo-sort)\n- [prettier](https://github.com/prettier/prettier)\n\n### Checks\n\nTo verify if changes need to be made, here are examples for the above tools:\n\n```\nexport RUSTFLAGS=\"-D warnings\"\n\ncargo +nightly fmt --check\ncargo +nightly udeps --workspace --all-features\ncargo clippy --all-features --tests\ncargo sort --workspace --check\nnpm run lint\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwarden%2Fsdk-internal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitwarden%2Fsdk-internal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwarden%2Fsdk-internal/lists"}