プロジェクト概要

heh はRustで書かれた軽量なターミナルHexエディタです。名前はHexadecimal(十六進数)から取られており、シンプルで覚えやすい名称です。

ターミナル環境でバイナリファイルを扱う際、hehは直感的なTUIインターフェースを提供し、バイトレベルの正確な編集をサポートします。リモートサーバーやコンテナ内でバイナリデータを素早く確認・修正する必要がある場合、GUIツールよりも便利です。

主な機能

  • ターミナルネイティブ体験: Ratatuiベースのスムーズなインターフェース
  • 正確な編集: nibble(4ビット)レベルのバイト編集に対応
  • クロスプラットフォーム: Linux、macOS、Windowsをサポート
  • 軽量・高速: Rust実装、リソース消費が少ない
  • MITライセンス: 自由に使用・修正可能

使用シーン

  1. 組み込み開発: ファームウェアファイル構造の素早い確認
  2. リバースエンジニアリング: バイナリファイル形式の分析
  3. データ復旧: 破損したファイルヘッダーの修復
  4. プロトコルデバッグ: ネットワークキャプチャのバイナリ内容確認

インストール方法

# cargoでインストール
cargo install heh

# またはパッケージマネージャー経由
# Arch Linux: yay -S heh
# macOS ( Homebrew ): brew install heh

クイックスタート

# ファイルを開く
heh firmware.bin

# ショートカットキー
# q      - 終了
# 方向キー - 移動
# Enter  - 編集モード
# Ctrl+S - 保存

技術的な見どころ

hehのコード構造は明確で、Rustで実用的なTUIアプリを構築する方法を示しています:

  • Ratatui を使用したターミナルレンダリング
  • 適切なモジュール分離(入力処理、レンダリング、ファイル操作を分離)
  • 優れたエラーハンドリングとユーザーへのフィードバック

ターミナルUI開発を学びたいRust開発者にとって、hehは良い参考プロジェクトです。

まとめ

hehはターミナル環境でのバイナリ編集ツールの欠落を埋めます。Hex Fiendや010 Editorほど機能は充実していませんが、日常的なバイナリファイルの確認や簡単な編集には十分です。ターミナルでよく作業する場合、hehはツールボックスに加える価値があります。


プロジェクト情報