Skip to content

ryoppippi/bun-cmigemo

Repository files navigation

bun-cmigemo

npm version npm downloads

Run cmigemo with Bun cc.

Screen.Recording.Oct.8.from.vim-jp.mov

What is this?

This package allows you to run cmigemo with Bun cc.

Bun has an experimental compiler called Bun cc, which enables you to run C code in Bun with low overhead. cmigemo is written in C, and if you want to use it in Bun, you need to compile it. However, by wrapping C code with Bun cc, you can run it in Bun without the need for explicit compilation! Amazing, right?

So, this package is essentially a wrapper around cmigemo, but you don't need to compile it!

There are also other implementations of migemo, such as jsmigemo and rustmigemo, which are written in JavaScript and Rust, respectively, allowing you to run them in Node or even in the browser!

So... WTH does this package exist? Well, it's just for fun! 😄

Usage

To install dependencies:

bun i bun-cmigemo
bun pm trust bun-cmigemo

Then, you can use it like this:

import { Migemo } from 'bun-cmigemo';

const dictPath = '/absolute/path/to/dict';
{
	using migemo = new Migemo(dictPath);

	migemo.query(query, s => console.log(s));
}

CLI

You can also use the CLI:

bun x bun-cmigemo -d path/to/dict 'query'
bun x bun-cmigemo --help

Example App

This repo includes an example web app that uses bun-cmigemo.

You can run it like this:

git clone https://github.com/ryoppippi/bun-cmigemo
cd bun-cmigemo
bun i
bun app
open http://localhost:3000
Screen.Recording.2024-10-08.at.12.00.26.mov

Limitations

This is obvious but it runs on only Bun.

License

MIT