**Show HN:Ferrite – Rustで作られたマークダウンエディタ、ネイティブMermaid図描画機能付き**

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

高速で軽量なテキストエディタ。MarkdownJSONYAMLTOML ファイルを対象にしています。
Rust と egui を組み合わせて、ネイティブかつレスポンシブな体験を実現しました。

⚠️ プラットフォーム注意点
Ferrite は主に Windows で開発・テストされています。Linux や macOS でも動作するはずですが、十分に検証されていません。問題が起きた場合はぜひご報告ください。


スクリーンショット

Raw EditorRendered View
RawRendered
Split ViewZen Mode
SplitZen

主な機能

コア編集

  • 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
ferrite-windows-x64.zip
Linux推奨:
ferrite-editor_amd64.deb
または
ferrite-linux-x64.tar.gz
macOS
ferrite-macos-x64.tar.gz

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 – 原文エディタとライブプレビューを並べて表示

ツールバーのボタンまたはショートカットでモード切替が可能です。


キーボードショートカット

カテゴリショートカット動作
ファイル操作
Ctrl+N
新規ファイル
Ctrl+O
ファイルを開く
Ctrl+S
保存
Ctrl+Shift+S
名前を付けて保存
Ctrl+W
タブを閉じる
ナビゲーション
Ctrl+Tab
次のタブへ
Ctrl+Shift+Tab
前のタブへ
Ctrl+P
クイックファイルスイッチャー(ワークスペース)
Ctrl+Shift+F
ファイル内検索(ワークスペース)
編集
Ctrl+Z
元に戻す
Ctrl+Y / Ctrl+Shift+Z
やり直し
Ctrl+F
検索
Ctrl+H
検索と置換
Ctrl+B
太字
Ctrl+I
斜体
Ctrl+K
リンク挿入
ビュー
F11
フルスクリーン切替
Ctrl+,
設定を開く
Ctrl+Shift+[
全折りたたみ
Ctrl+Shift+]
全展開

設定

設定はプラットフォーム別に保存されます:

  • 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 バインディング

同じ日のほかのニュース

一覧に戻る →

2026/01/11 3:58

**GhostTyの最大メモリリークを発見し修正する**

## Japanese Translation: Ghostty の長時間にわたるセッションは、`mmap`(スクロールバックバッファに使用される)で割り当てられたページが解放されないため、最大 37 GB の RAM をリークしていました。アプリはターミナルコンテンツを **PageList** に保存します。これは「標準」(プールから取得したもの)または「非標準」(`mmap`)のメモリページで構成される双方向リンクリストです。スクロールバックの削減時に、Ghostty は誤って最も古いページを新しいページとして再利用します:そのメタデータだけを「標準サイズ」にリサイズし、大きな `mmap` 割り当てはそのまま残します。この再利用されたページが後で解放されると、Ghostty はそれを標準とみなし、`munmap` を呼び出す代わりにプールへ返却してしまい、メモリブロックがリークしたままとなります。 このバグは Ghostty 1.0 から存在しましたが、大量のスクロールバックバッファ(例:多くの絵文字とハイパーリンクを含む Claude Code など)を生成する CLI アプリでのみ顕在化し、非標準ページ割り当てをトリガーします。既存のリーク検出器は特定の実行時条件下で発生するため、検知できませんでした。 新しいテストが問題を再現しリークを確認しました。統合された修正では、削減中に **非標準ページを破棄**(`self.destroyNode(first)`)し、プールから新しい標準サイズのページで置き換えるようになっています。この修正は Ghostty 1.3(3 月)に組み込まれます。既に Nightly リリースにはパッチが含まれています。 さらに、macOS のメモリタグ付け(`mach.taggedPageAllocator(.application_specific_1)`)を追加し、PageList 割り当てにタグを付与して修正の検出と確認を簡素化しました。この更新により、長時間ターミナルセッションを実行するユーザー—特に重い CLI ワークロードを扱う開発者は――メモリ使用量が急増する問題が解消され、個人およびプロダクションでアプリに依存している組織の両方に対し、より安定かつ信頼性の高い Ghostty エクスペリエンスを提供します。

2026/01/11 1:56

**HNの投稿:** 「Claude Code を使って100冊の本との関連性を発見しました」

## Japanese Translation: **概要** 本文は、スタートアップのピボットが巧妙な洞察よりもむしろ絶望感から動かされることが多いと主張しています。後知恵バイアスがこれらの反応的シフトを事後的に戦略的計画として見せかけ、意図的な天才像を与える仕方を説明しています。代表例として、Odeo が新しいベンチャーへと変貌するケースが挙げられ、ピボット手法の実践的なテキストブック例として機能します。著者は将来のピボットも短期的圧力によって促される反応的なものに留まる可能性が高いと予測し、このパターンを認識することで、創業者・投資家・チームがスタートアップエコシステム内で戦略やリスクについて考える方法を再構築し、企業が方向転換する理由をより現実的に評価できるよう促すと述べています。

2026/01/11 8:45

Show HN:Librario――Google Books、ISBNDB などを統合する書籍メタデータ API ---

## Japanese Translation: > **Librario** は、Go で書かれた早期段階の AGPL ライセンス付き本メタデータ集約 API です。Google Books、ISBNDB、Hardcover からデータを取得し、Goodreads と Anna’s Archive を追加予定です。フィールド固有の戦略(例:タイトルスコアリング、表紙品質評価)で競合を解決し、マージ済み結果を PostgreSQL に保存します。パフォーマンス向上のためにキャッシュ層が追加されています。本サービスは現在プレ・アルファ段階で、小規模な VPS 上で稼働しており、サードパーティーの制限に達していません。バージョン 1.0 前にデータベーススキーマを再設計する作業が進行中で、元々 AI が生成した設計は不明瞭だったため SourceHut の開発者によって推進されています。Librario は著者の約 1,800 冊の本管理ニーズから始まり、現在は単一の JSON レスポンスに完全な本情報を提供します ― 例:`curl https://librario.example/api/9781328879943` がマージ済みメタデータを返します。コードは SourceHut (`https://sr.ht/~pagina394/librario/`) にホストされており、フィードバック・パッチ・貢献を歓迎しています。SourceHut コンサルティングとの 5 ヶ月間の関与により開発進捗は遅れましたが、コア機能は安定しています。

**Show HN:Ferrite – Rustで作られたマークダウンエディタ、ネイティブMermaid図描画機能付き** | そっか~ニュース