Yuta Imazu

I’m a software engineer living in Tokyo, Japan.
Among many other things, I’m fascinated by command-line apps, database systems, distributed systems, and synthesizers.

Projects

indexa

A locate alternative with incremental search. GitHub

Designed to utilize multiple CPU cores and minimize memory usage.
Inspired by Everything, which is another great file locator.

Bare-metal programs

Programs written for bare-metal environments.

mochi

Lua runtime implemented in Rust. GitHub

 1local function factorial(n)
 2    if n == 0 then
 3        return 1
 4    else
 5        return n * factorial(n - 1)
 6    end
 7end
 8
 9local n = tonumber(arg[1] or 10)
10print(n .. "! = " .. factorial(n))
$ mochi factorial.lua 12
12! = 479001600
  • Bytecode VM compatible with PUC-Rio Lua 5.4
  • Lexer and parser
  • AST to bytecode compiler
  • Incremental mark-and-sweep garbage collection
  • Standard library implementation

Databases

qwerk

An embedded transactional key-value store. GitHub

1let db = Database::open("db")?;
2let mut worker = db.worker()?;
3let mut txn = worker.transaction();
4txn.insert(b"key", b"value")?;
5assert_eq!(txn.get(b"key")?, Some(b"value".as_slice()));
6txn.commit()?;
  • ACID transactions with strict serializability
  • Optimized for multi-threaded workloads with multiple concurrent readers and writers
  • Persistence to the disk

zakros

Redis-compatible in-memory database replicated with Raft consensus algorithm. GitHub

Audio and synthesizers

Web synthesizers and audio effects

Various synthesizers and effects utilizing WebAudio AudioWorklet.

  • synks: Karplus-Strong string synthesizer
  • synxylo: Physical modeling xylophone synthesizer
  • syndx: FM synthesizer for electric piano sound
  • syntw: Tonewheel organ sound synthesizer
  • phaker: Physically-based shaker sound synthesizer
  • forma: Formant filter
  • web-channel-eq: Ableton Live’s Channel EQ

accent

Implementation of audio reverberation algorithms. GitHub

Synth Playground

Web playground to play with WebAudio AudioWorklet. Try online

primesynth

SoundFont-powered MIDI synthesizer. GitHub

Witchbooru

Try online

Image recognition system for anime characters.
Trained with Danbooru data and built on top of DeepDanbooru model.
Deployed as an AWS Lambda function.

beek

A modern REPL-style calculator. GitHub

Web version is built with WebAssembly.

Web services accessible from terminal

Web apps you can use via curl, wget, etc.

Games

TUI games

Games in text user interface.

mahjongg

Mahjong solitaire game (aka Shanghai) compatible with GNOME Mahjongg and KMahjongg. GitHub

mckalah

Monte Carlo tree search player for Kalah. GitHub

suffine

Suffix array construction tool/library for huge strings. GitHub

1let text = "I scream, you scream, we all scream for ice cream!";
2let index = IndexBuilder::new(text)
3    .block_size(1024 * 1024)
4    .build()
5    .unwrap();
6assert_eq!(index.positions("cream"), &[30, 44, 15, 3]);