• Stars
    star
    131
  • Rank 275,867 (Top 6 %)
  • Language
    Rust
  • License
    MIT License
  • Created almost 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Vietnamese Input Method library

VI

Cargo Crate Docs License

A input method library for Vietnamese input engine written completely in Rust

What is this?

Since 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.

If 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.

Installation

Add vi to your dependencies in Cargo.toml.

[dependencies]
vi = "0.4.0"

Examples

With 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 & a key sending system.

extern crate vi;

use vi::vni;

fn main() {
    let inputs = vec![
        vec!['v', 'i', 'e', 't', '6', '5'],
        vec!['n', 'a', 'm']
    ];

    let mut result = String::new();
    for input in inputs {
        vni::transform_buffer(input.iter().cloned(), &mut result);
        result.push(' ');
    }
    
    println!("{}", result); // prints "viแป‡t nam "
}

Please refer to the examples/ directory to learn more.

Support

  • VNI
  • Telex

Project status

Currently, this project is still at its early stage of development. There might be some minor bugs but overall, it should be 95% functional.

Creator

Want to support me? Consider buying me a coffee:)

ko-fi

More Repositories

1

SnippetStore

๐ŸŽ‰ A snippet management app for developers ๐Ÿš€
JavaScript
848
star
2

moon

๐ŸŒŽ ๐ŸŒ” A hobby web browser developed from scratch
Rust
316
star
3

CommitTasks

A combination between git commit & todo list ๐ŸŽ‰
JavaScript
295
star
4

limus

๐ŸŽจ Make your screenshot/image more professional by rotating, adding shadow and more.
TypeScript
112
star
5

awesome-browser

A list of awesome web browser related stuff
78
star
6

rsn

A TUI-based RSS reader written in rust
Rust
25
star
7

NoticeZ

A javascript library for creating "web" push notifications
JavaScript
8
star
8

Alluring

A cross platform app for changing wallpaper
JavaScript
7
star
9

SoundFlow

A simple music playing app that support multiple online sources.
TypeScript
7
star
10

vscode-snippetstore

Snippet Store integration in Visual Studio Code
JavaScript
7
star
11

vudoku

A simple sudoku game written in v lang
V
6
star
12

Waving

A simple audio player with wave effect
TypeScript
6
star
13

checkme

A simple todo cli app build with oclif
TypeScript
5
star
14

Gofont

A simple google font downloader written in Golang
Go
4
star
15

Elisten

An web app for improving English listening skill
JavaScript
4
star
16

darkside

A TUI-kit for rust
Rust
4
star
17

EasyPDF

A simple library that use PDF.js for rendering pdf file on electron
JavaScript
4
star
18

MyWatchList

A simple movie watch list app
CoffeeScript
4
star
19

ZEx

A hacking tool base written with NodeJs
JavaScript
3
star
20

AnimeBot

A simple bot for taking anime info from myanimelist.net
JavaScript
3
star
21

everyday

My everyday notes
2
star
22

akanban

A simple kanban board built with Angular and โค๏ธ
TypeScript
2
star
23

Sonalus

A modern markdown editor
TypeScript
2
star
24

TIL

Today I learned - A collection of knowledge from source reading to side-project
2
star
25

spacechess

A simple 3d chess game made with three.js
CoffeeScript
2
star
26

mState

A simple state management library for mithril.js
JavaScript
2
star
27

aoc2023

AOC 2023!
Clojure
2
star
28

p5Generator

A cross platform app for generating and managing p5.js projects !
JavaScript
1
star
29

NewWall

Just another wallpaper changing app! ๐ŸŽ‰
Vue
1
star
30

autocomplete-demo

A simple demo of autocomplete search box
JavaScript
1
star
31

tplgen

A nodejs third party licenses generator
JavaScript
1
star
32

portfolio-v3

Back to simple, clean style
TypeScript
1
star
33

aoc2022

My AoC 2022 solutions. Enter at your own risk.
JavaScript
1
star
34

wezterm-config

My wezterm config
Lua
1
star
35

style-helper

This repository containt style helper file
CSS
1
star
36

dotfiles

My dotfiles
Vim Script
1
star
37

craftorio

A clone of Minecraft in threejs for fun
TypeScript
1
star
38

aoc-2021

Advent of Code 2021
Rust
1
star
39

zerox-dg.github.io

My portfolio
TypeScript
1
star
40

meow

[WIP] A language compiled to JS for fun!
Rust
1
star
41

emacs-github-pr

a simple tool that helps speed up the process of reviewing Github PRs
Emacs Lisp
1
star
42

blog

My blog, recreated
CSS
1
star