{"id":4303859,"name":"writeable","ecosystem":"cargo","description":"A more efficient alternative to fmt::Display","homepage":null,"licenses":"Unicode-3.0","normalized_licenses":["Unicode-TOU"],"repository_url":"https://github.com/unicode-org/icu4x","keywords_array":[],"namespace":null,"versions_count":15,"first_release_published_at":"2020-11-12T23:11:03.421Z","latest_release_published_at":"2025-10-28T15:57:09.255Z","latest_release_number":"0.6.2","last_synced_at":"2026-03-15T02:21:18.063Z","created_at":"2022-04-13T09:04:03.145Z","updated_at":"2026-03-15T02:27:16.201Z","registry_url":"https://crates.io/crates/writeable/","install_command":"cargo install writeable","documentation_url":"https://docs.rs/writeable/","metadata":{"categories":[]},"repo_metadata":{"id":36957896,"uuid":"243395141","full_name":"unicode-org/icu4x","owner":"unicode-org","description":"Solving i18n for client-side and resource-constrained environments.","archived":false,"fork":false,"pushed_at":"2026-03-13T21:16:47.000Z","size":702970,"stargazers_count":1758,"open_issues_count":640,"forks_count":264,"subscribers_count":30,"default_branch":"main","last_synced_at":"2026-03-14T05:44:56.873Z","etag":null,"topics":["cldr","icu","internationalization","localization","rust","unicode"],"latest_commit_sha":null,"homepage":"https://icu4x.unicode.org","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/unicode-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":"https://home.unicode.org/donation-page/"}},"created_at":"2020-02-27T00:27:11.000Z","updated_at":"2026-03-13T21:16:56.000Z","dependencies_parsed_at":"2024-12-23T21:01:36.111Z","dependency_job_id":"8e57a0f0-09c8-48eb-814b-751fafd22d05","html_url":"https://github.com/unicode-org/icu4x","commit_stats":{"total_commits":3662,"total_committers":104,"mean_commits":35.21153846153846,"dds":0.7176406335335882,"last_synced_commit":"5f103cb07d186cd4dbf574fb6f16d5712b950b82"},"previous_names":["unicode-org/omnicu"],"tags_count":80,"template":false,"template_full_name":null,"purl":"pkg:github/unicode-org/icu4x","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicode-org%2Ficu4x","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicode-org%2Ficu4x/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicode-org%2Ficu4x/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicode-org%2Ficu4x/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unicode-org","download_url":"https://codeload.github.com/unicode-org/icu4x/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicode-org%2Ficu4x/sbom","scorecard":{"id":909808,"data":{"date":"2025-08-24T06:31:54Z","repo":{"name":"github.com/unicode-org/icu4x","commit":"c1cfbf8cb41d7a703188374985d550b6c2bda296"},"scorecard":{"version":"v5.0.0","commit":"ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4"},"score":6.6,"checks":[{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: components/icu/tests/data/tutorial_buffer.wasm:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":4,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disable on branch 'main'","Info: 'stale review dismissal' is required to merge on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: 'last push approval' is disable on branch 'main'","Warn: 'up-to-date branches' is disable on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#branch-protection"}},{"name":"CI-Tests","score":10,"reason":"30 out of 30 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#ci-tests"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#cii-best-practices"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#code-review"}},{"name":"Contributors","score":10,"reason":"project has 46 contributing companies or organizations","details":["Info: web-platform-tests contributor org/company found, projectfluent contributor org/company found, firefox-devtools contributor org/company found, boa-dev contributor org/company found, skydio contributor org/company found, aviarypl contributor org/company found, open-i18n contributor org/company found, rust-diplomat contributor org/company found, dylan-lang contributor org/company found, mozilla corporation contributor org/company found, dylan-hackers contributor org/company found, dylan-foundry contributor org/company found, nodejs contributor org/company found, ReflectHymn contributor org/company found, w3c contributor org/company found, servo contributor org/company found, relaxng contributor org/company found, chronostore contributor org/company found, openjdk contributor org/company found, unicode-org contributor org/company found, canonical contributor org/company found, mockingbirdnest contributor org/company found, whatwg contributor org/company found, llvm contributor org/company found, techlahoma contributor org/company found, stackgl contributor org/company found, regl-project contributor org/company found, google contributor org/company found, rust-lang contributor org/company found, tc39-transfer contributor org/company found, stiftungswo contributor org/company found, codehivetx contributor org/company found, unicode-rs contributor org/company found, ICU-Performance contributor org/company found, amazon lab126 contributor org/company found, glslify contributor org/company found, rust-fuzz contributor org/company found, validator contributor org/company found, html5lib contributor org/company found, mozilla-standards contributor org/company found, googoogaga contributor org/company found, endoli contributor org/company found, keymanapp contributor org/company found, tc39 contributor org/company found, l20n contributor org/company found, mozilla contributor org/company found, "],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#contributors"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#dangerous-workflow"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: :0"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#dependency-update-tool"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: RustCargoFuzzer integration found: components/collator/fuzz/fuzz_targets/compare_utf16.rs:6","Info: RustCargoFuzzer integration found: components/normalizer/fuzz/fuzz_targets/compare_self.rs:6","Info: RustCargoFuzzer integration found: components/normalizer/fuzz/fuzz_targets/compare_utf16.rs:6"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#license"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 14 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":9,"reason":"dependency not pinned by hash detected -- score normalized to 9","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/artifacts-build.yml:431: update your workflow using https://app.stepsecurity.io/secureworkflow/unicode-org/icu4x/artifacts-build.yml/main?enable=pin","Warn: containerImage not pinned by hash: .devcontainer/Dockerfile:5","Warn: npmCommand not pinned by hash: .github/workflows/artifacts-build.yml:190","Warn: npmCommand not pinned by hash: .github/workflows/artifacts-build.yml:519","Info:  44 out of  45 GitHub-owned GitHubAction dependencies pinned","Info:  64 out of  64 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   2 out of   4 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#sast"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact ffi-artifacts/2025-08-13 not signed: https://api.github.com/repos/unicode-org/icu4x/releases/239749817","Warn: release artifact ffi-artifacts/2025-08-13 does not have provenance: https://api.github.com/repos/unicode-org/icu4x/releases/239749817"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#signed-releases"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: topLevel 'contents' permission set to 'write': .github/workflows/artifacts-build.yml:32","Info: topLevel 'contents' permission set to 'read': .github/workflows/artifacts-info.yml:16","Info: topLevel 'contents' permission set to 'read': .github/workflows/build-test.yml:35","Info: topLevel 'contents' permission set to 'read': .github/workflows/coverage.yml:12","Info: topLevel permissions set to 'read-all': .github/workflows/scorecard.yml:22","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#token-permissions"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: RUSTSEC-2024-0436"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ea7e27ed41b76ab879c862fa0ca4cc9c61764ee4/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T18:42:03.047Z","repository_id":36957896,"created_at":"2025-08-24T18:42:03.047Z","updated_at":"2025-08-24T18:42:03.047Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30504293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-14T10:22:08.196Z","status":"ssl_error","status_checked_at":"2026-03-14T10:21:46.902Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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"},"tags":[]},"repo_metadata_updated_at":"2026-03-15T02:27:16.201Z","dependent_packages_count":22,"downloads":238455213,"downloads_period":"total","dependent_repos_count":441,"rankings":{"downloads":2.303825331667559,"dependent_repos_count":1.9966981973942532,"dependent_packages_count":1.778822199582066,"stargazers_count":4.452971622345172,"forks_count":4.8671842465345945,"docker_downloads_count":0.6254090070795407,"average":2.6708184341005308},"purl":"pkg:cargo/writeable","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/cargo/writeable","docker_dependents_count":110,"docker_downloads_count":25824846,"usage_url":"https://repos.ecosyste.ms/usage/cargo/writeable","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/cargo/writeable/dependencies","status":null,"funding_links":["https://home.unicode.org/donation-page/"],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-14T00:01:03.592Z","issues_count":964,"pull_requests_count":3967,"avg_time_to_close_issue":17500555.486899562,"avg_time_to_close_pull_request":1239065.6802525832,"issues_closed_count":458,"pull_requests_closed_count":3484,"pull_request_authors_count":93,"issue_authors_count":114,"avg_comments_per_issue":3.715767634854772,"avg_comments_per_pull_request":1.336022183009831,"merged_pull_requests_count":3033,"bot_issues_count":0,"bot_pull_requests_count":43,"past_year_issues_count":166,"past_year_pull_requests_count":818,"past_year_avg_time_to_close_issue":1001731.4629629629,"past_year_avg_time_to_close_pull_request":231408.1085271318,"past_year_issues_closed_count":54,"past_year_pull_requests_closed_count":645,"past_year_pull_request_authors_count":34,"past_year_issue_authors_count":40,"past_year_avg_comments_per_issue":1.5542168674698795,"past_year_avg_comments_per_pull_request":1.480440097799511,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":6,"past_year_merged_pull_requests_count":562,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicode-org%2Ficu4x/issues","maintainers":[{"login":"robertbastian","count":1542,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/robertbastian"},{"login":"sffc","count":1388,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sffc"},{"login":"Manishearth","count":621,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Manishearth"},{"login":"younies","count":398,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/younies"},{"login":"hsivonen","count":162,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hsivonen"},{"login":"zbraniecki","count":53,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zbraniecki"},{"login":"skius","count":47,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/skius"},{"login":"makotokato","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/makotokato"},{"login":"kartva","count":29,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kartva"},{"login":"nordzilla","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nordzilla"},{"login":"eggrobin","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/eggrobin"},{"login":"srl295","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/srl295"},{"login":"gregtatum","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gregtatum"},{"login":"samchen61661","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/samchen61661"},{"login":"snktd","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/snktd"},{"login":"macchiati","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macchiati"},{"login":"EvanJP","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/EvanJP"},{"login":"markusicu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/markusicu"},{"login":"alainncls","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alainncls"}],"active_maintainers":[{"login":"robertbastian","count":383,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/robertbastian"},{"login":"sffc","count":226,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sffc"},{"login":"Manishearth","count":117,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Manishearth"},{"login":"hsivonen","count":54,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hsivonen"},{"login":"younies","count":50,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/younies"},{"login":"makotokato","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/makotokato"},{"login":"zbraniecki","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zbraniecki"},{"login":"macchiati","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/macchiati"},{"login":"markusicu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/markusicu"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/crates.io/packages/writeable/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/crates.io/packages/writeable/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/crates.io/packages/writeable/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/crates.io/packages/writeable/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/crates.io/packages/writeable/codemeta","maintainers":[{"uuid":"9648","login":"zbraniecki","name":"Zibi Braniecki","email":null,"url":"https://github.com/zbraniecki","packages_count":56,"html_url":"https://crates.io/users/zbraniecki","role":null,"created_at":"2022-11-08T03:42:37.062Z","updated_at":"2022-11-08T03:42:37.062Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/crates.io/maintainers/zbraniecki/packages"}]}