
2026/01/11 10:50
**Show HN:Ferrite – Rustで作られたマークダウンエディタ、ネイティブMermaid図描画機能付き**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Ferrite は、egui で構築された軽量でネイティブな Rust テキストエディタで、Markdown、JSON、YAML、および TOML ファイルをサポートします。主な編集機能には、WYSIWYG Markdown 編集、ライブプレビュー、クリックで編集できる書式設定ボタン、40 以上の言語に対応した構文ハイライト、正規表現検索&置換、タブごとの Undo/Redo、およびインライン編集が可能な階層データ用トリービューがあります。
表示モードは Raw エディタ、レンダリングビュー、分割ビュー(可変サイズの区切り線付き)、Zen モード、Raw とレンダリングビュー間の双方向同期スクロールから構成されます。
MermaidJS ダイアグラム描画は完全に統合されており、11 種類のダイアグラムをサポートします;バージョン 0.2.1 では高度なシーケンス制御フローブロックとネストされた状態が追加されました。
ワークスペース機能:フォルダーをファイルツリーで開く、クイックスイッチャー(
Ctrl+P)、検索‑イン‑ファイル(Ctrl+Shift+F)、Git 統合(ステータスアイコン、ステージング、コミット、プッシュ/プル、競合解決)およびセッション永続化により、タブ、カーソル位置、およびスクロールオフセットが再起動時に復元されます。追加の UI オプションには、実行時切替可能なライト/ダークテーマ、ドキュメントアウトラインパネル、テーマ付き HTML へのエクスポートまたは HTML としてコピー、書式設定ツールバー、JSON/YAML をシェルコマンドでパイプするライブパイプライン、およびカスタム境界なしウィンドウモードがあります。
インストールはプリビルトバイナリ(Windows zip、macOS tar.gz、Linux .deb または tar.gz)またはソースビルド(
cargo build --release)で利用可能です。Rust 1.70+ とプラットフォーム固有の依存関係が必要です。主なショートカット:ファイル操作は Ctrl+N/O/S/W、タブは Ctrl+Tab/Shift+Tab、クイックスイッチャーは Ctrl+P、フルスクリーンは F11、設定は Ctrl+, などです。Ferrite は MIT ライセンスの下でオープンソースであり、Rust 1.70+、egui 0.28、comrak 0.22(Markdown パーシング)、syntect 5.1(構文ハイライト)、git2 0.19(Git 統合)に依存しています。
本文
Ferrite
高速で軽量なテキストエディタ。Markdown、JSON、YAML、TOML ファイルを対象にしています。
Rust と egui を組み合わせて、ネイティブかつレスポンシブな体験を実現しました。
⚠️ プラットフォーム注意点
Ferrite は主に Windows で開発・テストされています。Linux や macOS でも動作するはずですが、十分に検証されていません。問題が起きた場合はぜひご報告ください。
スクリーンショット
| Raw Editor | Rendered View |
|---|---|
![]() | ![]() |
| Split View | Zen Mode |
|---|---|
![]() | ![]() |
主な機能
コア編集
- WYSIWYG Markdown 編集 – ライブプレビュー、クリックでフォーマット変更、構文ハイライト
- マルチフォーマット対応 – Markdown、JSON、YAML、TOML をネイティブにサポート
- ツリービュー – JSON/YAML/TOML の階層表示。インライン編集・折りたたみ・パスコピーが可能
- 検索と置換 – 正規表現対応でハイライト付き検索
- Undo/Redo – タブ単位の完全な元に戻し/やり直し
ビューモード
- Split View – 原文エディタ+プレビューを並列表示(分割バーはリサイズ可能)
- Zen Mode – 集中した執筆体験。中央揃えのテキストカラムで気が散らないように
- Sync Scrolling – 原文とレンダリング間で双方向スクロール同期
エディタ機能
- 構文ハイライト – 40 種類以上(Rust、Python、JavaScript、Go 等)のフルファイルハイライト
- コード折りたたみ – 見出し・コードブロック・リスト用のインジケータ(▶/▼)。テキスト非表示は v0.3.0 で実装予定
- ミニマップ – VS Code スタイルのナビゲーションパネル。クリックでジャンプ、検索ハイライト付き
- 括弧マッチング –
<> と強調ペア()[]{}**
をハイライト__ - 自動保存 – 設定可能な自動保存と一時ファイル安全性
- 行番号 – 行番号表示はオプション
MermaidJS ダイアグラム
11 種類のダイアグラムをプレビュー内で直接レンダリング:
- Flowchart, Sequence, Pie, State, Mindmap
- Class, ER, Git Graph, Gantt, Timeline, User Journey
✨ v0.2.1 発表 – シーケンス制御フロー(loop, alt, opt, par)やアクティベーションボックス、ノート、分岐レイアウト付きサブグラフ、複合/入れ子状態を含む Mermaid の拡張に対応。詳細は
をご覧ください。CHANGELOG.md
ワークスペース機能
- ワークスペースモード – フォルダ開封時にファイルツリー表示、クイックスイッチャー(Ctrl+P)、ファイル内検索(Ctrl+Shift+F)
- Git 統合 – 変更・追加・未追跡・除外のステータスインジケータ
- セッション永続化 – 再起動時にタブ、カーソル位置、スクロールオフセットを復元
その他機能
- ライト & ダークテーマ(実行時切替)
- ドキュメントアウトライン – 大きな文書のナビゲーション
- エクスポートオプション – テーマ付き HTML へエクスポート、HTML としてコピー
- フォーマッターツールバー – 太字・斜体・見出し・リスト・リンクなどへの素早いアクセス
- ライブパイプライン – JSON/YAML コンテンツをシェルコマンドで処理(開発者向け)
- カスタムウィンドウ – ボーダーレスウィンドウ、カスタムタイトルバーとリサイズハンドル
インストール
事前ビルド済みバイナリ
ご利用のプラットフォームに合わせて最新リリースを GitHub Releases よりダウンロードしてください。
| プラットフォーム | ダウンロード |
|---|---|
| Windows | |
| Linux | 推奨: または |
| macOS | |
Linux インストール
.deb パッケージ(Debian/Ubuntu/Mint 推奨):
# .deb ファイルをダウンロード後、以下でインストール sudo apt install ./ferrite-editor_amd64.deb # または dpkg で: sudo dpkg -i ferrite-editor_amd64.deb
これにより Ferrite は
/usr/bin/ferrite に配置され、デスクトップエントリが作成され、.md, .json, .yaml, .toml のファイルアソシエーションとアイコンが登録されます。
tar.gz (任意の Linux ディストリビューション):
tar -xzf ferrite-linux-x64.tar.gz ./ferrite
ソースからビルド
必要条件:
- Rust 1.70+ –
でインストールrustup.rs - プラットフォーム別依存パッケージ(下記参照)
Windows
Visual Studio Build Tools 2019+ (C++ ワークロード)
Linux
# Ubuntu/Debian sudo apt install build-essential pkg-config libgtk-3-dev libxcb-shape0-dev libxcb-xfixes0-dev # Fedora sudo dnf install gcc pkg-config gtk3-devel libxcb-devel # Arch sudo pacman -S base-devel pkg-config gtk3 libxcb
macOS
brew install gtk+3 libxkbcommon
ビルド手順
git clone https://github.com/OlaProeis/Ferrite.git cd Ferrite cargo build --release
生成されるバイナリは:
- Windows:
target/release/ferrite.exe - Linux/macOS:
target/release/ferrite
使い方
起動
# ソース(デバッグ) cargo run # リリースビルド ./target/release/ferrite # Windows では ferrite.exe
特定ファイルを開く:
./target/release/ferrite path/to/file.md
フォルダをワークスペースとして開く:
./target/release/ferrite path/to/folder/
ビューモード
Markdown ファイルは 3 種類のモードで表示できます:
- Raw – シンタックスハイライト付きテキスト編集
- Rendered – WYSIWYG 編集+レンダリング済み Markdown
- Split – 原文エディタとライブプレビューを並べて表示
ツールバーのボタンまたはショートカットでモード切替が可能です。
キーボードショートカット
| カテゴリ | ショートカット | 動作 |
|---|---|---|
| ファイル操作 | | 新規ファイル |
| ファイルを開く | |
| 保存 | |
| 名前を付けて保存 | |
| タブを閉じる | |
| ナビゲーション | | 次のタブへ |
| 前のタブへ | |
| クイックファイルスイッチャー(ワークスペース) | |
| ファイル内検索(ワークスペース) | |
| 編集 | | 元に戻す |
| やり直し | |
| 検索 | |
| 検索と置換 | |
| 太字 | |
| 斜体 | |
| リンク挿入 | |
| ビュー | | フルスクリーン切替 |
| 設定を開く | |
| 全折りたたみ | |
| 全展開 |
設定
設定はプラットフォーム別に保存されます:
- Windows:
%APPDATA%\ferrite\ - Linux:
~/.config/ferrite/ - macOS:
~/Library/Application Support/ferrite/
ワークスペース固有の設定は、ワークスペースフォルダ内の
.ferrite/ に保存されます。
Ctrl+, またはギアアイコンで設定画面にアクセスし、以下を調整できます:
- 外観 – テーマ、フォントファミリ、フォントサイズ
- エディタ – 単語折り返し、行番号表示、ミニマップ、括弧一致、コード折りたたみ、構文ハイライト
- ファイル – 自動保存、最近開いたファイル履歴
ロードマップ
詳細は
ROADMAP.md をご覧ください。
コントリビューション
ぜひ貢献してください! 詳細は
CONTRIBUTING.md に記載しています。
参加者向けクイックスタート
# フォーク&クローン git clone https://github.com/YOUR_USERNAME/Ferrite.git cd Ferrite # 機能ブランチ作成 git checkout -b feature/your-feature # コード変更後、確認 cargo fmt cargo clippy cargo test cargo build # コミット&プッシュ git commit -m "feat: your feature description" git push origin feature/your-feature
テックスタック
| コンポーネント | 技術 |
|---|---|
| 言語 | Rust 1.70+ |
| GUI フレームワーク | egui 0.28 + eframe 0.28 |
| Markdown パーサ | comrak 0.22 |
| 構文ハイライト | syntect 5.1 |
| Git 統合 | git2 0.19 |
| ファイルダイアログ | rfd 0.14 |
| クリップボード | arboard 3 |
| ファイル監視 | notify 6 |
| ファジーマッチング | fuzzy‑matcher 0.3 |
ライセンス
本プロジェクトは MIT License の下でライセンスされています。詳細は
LICENSE ファイルをご覧ください。
謝辞
- egui – Rust 用の即時モード GUI ライブラリ
- comrak – CommonMark + GFM 対応 Markdown パーサ
- syntect – 構文ハイライトライブラリ
- git2 – libgit2 の Rust バインディング



