{"id":19580196,"url":"https://github.com/xclud/rust-bidi","last_synced_at":"2026-06-12T08:32:46.477Z","repository":{"id":195085124,"uuid":"692028309","full_name":"xclud/rust-bidi","owner":"xclud","description":"Implementation of the Unicode Bidi Algorithm (UBA).","archived":false,"fork":false,"pushed_at":"2023-09-18T09:47:46.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-30T20:23:43.331Z","etag":null,"topics":["bidi","bidirectional","rust","unicode"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/bidi","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xclud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-09-15T12:05:09.000Z","updated_at":"2023-09-15T21:58:46.000Z","dependencies_parsed_at":"2024-11-11T07:25:43.942Z","dependency_job_id":"221b89d9-05f8-45d3-baef-62d87bab0790","html_url":"https://github.com/xclud/rust-bidi","commit_stats":null,"previous_names":["xclud/rust-bidi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xclud/rust-bidi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xclud%2Frust-bidi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xclud%2Frust-bidi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xclud%2Frust-bidi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xclud%2Frust-bidi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xclud","download_url":"https://codeload.github.com/xclud/rust-bidi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xclud%2Frust-bidi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34236551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"keywords":["bidi","bidirectional","rust","unicode"],"created_at":"2024-11-11T07:23:56.675Z","updated_at":"2026-06-12T08:32:46.449Z","avatar_url":"https://github.com/xclud.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Implementation of the Unicode Bidirectional Algorithm (UBA).\n\nReference: [http://www.unicode.org/reports/tr9/](http://www.unicode.org/reports/tr9/).\n\nConverts logical strings to their equivalent visual representation. Persian, Hebrew and Arabic languages (and any other RTL language) are supported.\n\n```rust\n#[test]\n/// Shaping test.\nfn shaping() {\n    let text: \u0026str = \"مهدی\";\n    let mut text_u16 = text.encode_utf16().collect::\u003cVec\u003cu16\u003e\u003e();\n\n    perform_shaping(\u0026mut text_u16);\n\n    let result = String::from_utf16(text_u16.as_slice()).unwrap();\n    assert_eq!(result, \"ﻣﻬﺪﯼ\");\n    assert_eq!(text_u16, vec!['ﻣ' as u16, 'ﻬ' as u16, 'ﺪ' as u16, 'ﯼ' as u16]);\n}\n\n#[test]\n/// Paragraph test.\nfn paragraph() {\n    let text: \u0026str = \"Two\\nParagraphs\";\n    let text_u16 = text.encode_utf16().collect::\u003cVec\u003cu16\u003e\u003e();\n\n    let paragraphs = split_string_to_paragraphs(\u0026text_u16);\n\n    assert_eq!(paragraphs.len(), 2);\n    assert_eq!(paragraphs[0].text, vec![84, 119, 111]);\n}\n```\n\n## Other Implementations\n\nThis package is also written in Dart (apart from this package, which is written in Rust). If you are looking for a pure Dart implementation of this package, look at [https://pub.dev/packages/bidi/](https://pub.dev/packages/bidi/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxclud%2Frust-bidi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxclud%2Frust-bidi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxclud%2Frust-bidi/lists"}