最近作ったもの 2025年4月版
自分が最近作ったものを簡単に振り返るシリーズです。
ここ最近は言語の学習も兼ねて Rust や Zig でツールを作ってみるというのをやってました。 普段利用するものを、影響の少ない部分から自分が作ったものに置き換えていくのは、本当に楽しいなと思います(このブログで利用している静的サイトジェネレーターも自分が作ったものです: go-vss)。
全然関係ないのですが、最近のマイブームで自分の使うツールの名前の先頭には z
をつけるようにしています。特に意味はないけど自分のハンドルネームが zztkm というのもあり、なんとなく z
が好きなんだと思います(そのうちダブルゼータ zz
も出てくるかも)。
そういえば人生で初めて組み立てたマスターグレードのガンプラは Z ガンダムでした。
はい、ということで最近作ったものを振り返ります。
zprompt
Zig で書いたシェルプロンプトを表示するツールです。
https://github.com/zztkm/zprompt
開発してみたきっけはこちらのブログポストです。
I built a ZSH Prompt with Zig ⚡ – David Bushell – Web Dev (UK)
これといった特徴はありませんが、Windows (少なくとも自分の環境)で動きます。
コード内の TODO にも書いていますが、カスタマイズする機能は未実装のため、現状だと動作が限られています。
正直今ある機能で満足しているため、そこまでモチベーションはありませんが、絵文字とかは設定できるようにしたいなと考えてます。
zmplayer
Rust で書いた音楽プレイヤーです。
https://github.com/zztkm/zmplayer
ほぼ設定不要で使えるのですが、指定されたディレクトリから音楽ファイルを検索して勝手に再生するだけの機能しか実装されていないため、ユーザーが曲の再生順を制御することはできません。
今考えている機能は、プレイリストなどをテキストファイル(config.ini) などで定義することで、曲の再生順を制御できるようにすることです。
あとは、TUI を用意してコントロールしやすくしたいなとも考えてますが、もうちょっと使ってみて気の向くままにやっていこうかなと思います。
PHP で実装した静的サイトジェネレーター
PHPカンファレンス小田原 2025 に参加してきた にも書きましたが、PHP に興味が湧いたので簡単な(ほぼ何もできない)静的サイトジェネレーターを作ってみました。
https://github.com/zztkm/hello-php/tree/main/ssg
最新の PHP 8 系の言語機能を使って実装してみましたが、案外開発体験は良かったです。
mp4-util
mp4 ファイルを操作するためのユーティリティツールです。
https://github.com/zztkm/mp4-util
依存関係を見てもらうとわかるのですが、すべて sile さん製のライブラリに依存しています。
今は mp4 ファイルを解析して、トラックの情報 (メディアタイプやコーデック) を表示するだけの機能しか実装していませんが、今後は mp4 ファイルのトリミングなどの機能を入れていきたいなと考えています。
おわりに
自分がちょこっと使いたいツールを自作のものに置き換えていくのは楽しいなと思います。 最近は Rust や Zig での開発に楽しさを覚えていますが、そろそろモバイルデバイスで使うツールも開発してみたいため、Swift や Kotlin でのアプリケーション開発もチャレンジしていこうと考えています。