{"id":15294072,"url":"https://github.com/stratis-storage/libcryptsetup-rs","last_synced_at":"2025-04-04T10:08:25.939Z","repository":{"id":36946512,"uuid":"199515538","full_name":"stratis-storage/libcryptsetup-rs","owner":"stratis-storage","description":"Bindings for libcryptsetup using bindgen and a higher level API wrapper","archived":false,"fork":false,"pushed_at":"2025-02-27T01:23:33.000Z","size":621,"stargazers_count":21,"open_issues_count":6,"forks_count":13,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T09:08:16.360Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stratis-storage.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-29T19:33:56.000Z","updated_at":"2025-03-28T03:57:33.000Z","dependencies_parsed_at":"2023-01-17T07:24:44.151Z","dependency_job_id":"933e8a0c-0907-49fd-98a1-a45ba892bfb5","html_url":"https://github.com/stratis-storage/libcryptsetup-rs","commit_stats":{"total_commits":395,"total_committers":13,"mean_commits":"30.384615384615383","dds":0.6481012658227848,"last_synced_commit":"f63fc4ab1a974d6db59a43e8664a10aecbe88574"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratis-storage%2Flibcryptsetup-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratis-storage%2Flibcryptsetup-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratis-storage%2Flibcryptsetup-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratis-storage%2Flibcryptsetup-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stratis-storage","download_url":"https://codeload.github.com/stratis-storage/libcryptsetup-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247157283,"owners_count":20893220,"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":[],"created_at":"2024-09-30T16:57:18.176Z","updated_at":"2025-04-04T10:08:25.920Z","avatar_url":"https://github.com/stratis-storage.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Latest Version](https://img.shields.io/crates/v/libcryptsetup-rs.svg)](https://crates.io/crates/libcryptsetup-rs)\n[![Documentation](https://docs.rs/libcryptsetup-rs/badge.svg)](https://docs.rs/libcryptsetup-rs/)\n\n# libcryptsetup-rs\n\nThis crate provides Rust bindings for libcryptsetup.\n\n### Note on thread-safety\n\nlibcryptsetup is *not* thread-safe and also depends on libraries that are not\nthread-safe. Any use of libcryptsetup by default in a multithreaded environment will\nresult in undefined behavior.\n\nAs a workaround, this library provides a feature (`mutex`) to cause all calls to\nlibcryptsetup to acquire a crate-level mutex. This will enforce single threaded\naccess to all invocations of the libcryptsetup API.\n\nRust's decision to make pointers `!Send` should be respected. Any data structure that\ncontains a pointer is *not* safe to send across threads. Providing an `unsafe\nimpl Send {}` for any data structure provided by libcryptsetup-rs that is not `Send`\nmay result in undefined behavior.\n\n### Building\n\nThe libcryptsetup bindings require some dependencies outside of cargo to build\nproperly:\n1. cryptsetup (provided by `cryptsetup` on Fedora)\n2. cryptsetup development headers (provided by `cryptsetup-devel` on Fedora)\n3. libclang (provided by `clang` on Fedora)\n\n### Sanity testing bindings\n\nThere is one test that actually invokes libcryptsetup and can be used for basic sanity\ntesting of the bindings as it will only succeed if low level bindings are correctly generated,\nthe high level bindings build, and libcryptsetup successfully encrypts a loopback device.\n\nThis can be invoked as follows:\n\n```\nmake test-loopback\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratis-storage%2Flibcryptsetup-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstratis-storage%2Flibcryptsetup-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratis-storage%2Flibcryptsetup-rs/lists"}