{"id":27300822,"url":"https://github.com/zerox-dg/vi-rs","last_synced_at":"2025-04-12T01:26:13.961Z","repository":{"id":57671641,"uuid":"228184580","full_name":"ZeroX-DG/vi-rs","owner":"ZeroX-DG","description":"Vietnamese Input Method library","archived":false,"fork":false,"pushed_at":"2024-06-03T10:22:12.000Z","size":363,"stargazers_count":144,"open_issues_count":1,"forks_count":14,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-12T22:17:56.208Z","etag":null,"topics":["ime","input-method","text-processing","vietnamese-language"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZeroX-DG.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-15T12:58:48.000Z","updated_at":"2024-11-21T04:41:35.000Z","dependencies_parsed_at":"2022-08-30T15:41:22.882Z","dependency_job_id":"f13f5357-3000-4aca-a7ca-343678607a39","html_url":"https://github.com/ZeroX-DG/vi-rs","commit_stats":{"total_commits":157,"total_committers":7,"mean_commits":"22.428571428571427","dds":0.2547770700636943,"last_synced_commit":"c3b38015fc1c2bf132f76e4cd36c2629b9313ff0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeroX-DG%2Fvi-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeroX-DG%2Fvi-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeroX-DG%2Fvi-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeroX-DG%2Fvi-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZeroX-DG","download_url":"https://codeload.github.com/ZeroX-DG/vi-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248502993,"owners_count":21114920,"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":["ime","input-method","text-processing","vietnamese-language"],"created_at":"2025-04-12T01:26:13.076Z","updated_at":"2025-04-12T01:26:13.953Z","avatar_url":"https://github.com/ZeroX-DG.png","language":"Rust","funding_links":["https://ko-fi.com/Z8Z81ODLC"],"categories":[],"sub_categories":[],"readme":"# VI\n\n[![Cargo Crate](https://img.shields.io/crates/v/vi.svg)](https://crates.io/crates/vi)\n[![Docs](https://docs.rs/vi/badge.svg)](https://docs.rs/vi)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n\u003e A input method library for Vietnamese input engine written completely in Rust\n\n- [What is vi?](#what-is-this)\n- [Installation](#installation)\n- [Examples](#examples)\n- [Support](#support)\n- [Project status](#project-status)\n- [Creator](#creator)\n\n## What is this?\n\nSince typing Vietnamese on Linux is pretty painful at the momment, a better input engine is always needed. To accommodate the future engines that will be built in Rust, this library existed to transform key inputs into the Vietnamese string output.\n\nIf you wish to find out how it works, I have written a short blog post (in Vietnamese) on how the library place a tone mark when it received the user input. Read it [here](https://zerox-dg.github.io/blog/2020/07/14/Bo-dau-trong-tieng-Viet/).\n\n## Installation\n\nAdd `vi` to your dependencies in `Cargo.toml`.\n\n```\n[dependencies]\nvi = \"0.7.0\"\n```\n\n## Examples\n\nWith vi, you can start building your own Vietnamese IME without worrying about how Vietnamese tone mark placement works. All you have to do is to implement a keyboard listener \u0026 a key sending system.\n\n```rust\nextern crate vi;\n\nuse vi::vni;\n\nfn main() {\n    let inputs = vec![\n        vec!['v', 'i', 'e', 't', '6', '5'],\n        vec!['n', 'a', 'm']\n    ];\n\n    let mut result = String::new();\n    for input in inputs {\n        vni::transform_buffer(input.iter().cloned(), \u0026mut result);\n        result.push(' ');\n    }\n    \n    println!(\"{}\", result); // prints \"việt nam \"\n}\n```\n\nPlease refer to the [`examples/`](examples) directory to learn more.\n\n## Support\n\n- [x] **VNI**\n- [x] **Telex**\n\n## Project status\n\nCurrently, this project is still at its early stage of development. There might be some minor bugs but overall, it should be 95% functional.\n\n## Creator\n\n- Viet Hung Nguyen (viethungax@gmail.com) ([Github](https://github.com/ZeroX-DG))\n\nWant to support me? Consider buying me a coffee:)\n\n[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Z8Z81ODLC)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerox-dg%2Fvi-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerox-dg%2Fvi-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerox-dg%2Fvi-rs/lists"}