Ferrite – Rust로 제작된 네이티브 Mermaid 다이어그램 렌더링 지원 Markdown 편집기
(github.com/OlaProeis)- Ferrite는 Markdown, JSON, YAML, TOML 파일을 빠르고 가볍게 편집할 수 있는 Rust 기반 텍스트 에디터
- egui 프레임워크를 사용해 네이티브 수준의 반응성과 크로스플랫폼 실행 환경을 제공
- WYSIWYG 미리보기, MermaidJS 다이어그램 렌더링, Git 통합, 워크스페이스 모드 등 다양한 기능 지원
- 프로젝트의 모든 Rust 코드와 문서가 AI(Claude by Anthropic) 에 의해 생성되었으며, 사람은 검토와 테스트를 담당
- AI 보조 개발의 실제 적용 사례로, Rust 생태계와 AI 개발 협업 가능성을 보여주는 프로젝트
Ferrite 개요
-
Ferrite는 Markdown, JSON, YAML, TOML 파일을 지원하는 고속·경량 텍스트 편집기
- Rust와 egui로 작성되어 네이티브 수준의 반응성과 크로스플랫폼 실행 보장
- Windows에서 주로 개발·테스트되었으며, Linux와 macOS에서도 동작 가능
- 프로젝트는 MIT 라이선스로 공개되어 있으며, GitHub에서 약 600개의 스타를 획득
AI 기반 개발
- Ferrite의 모든 Rust 코드, 문서, 설정 파일은 AI(Claude by Anthropic) 가 작성
- 개발자는 제품 방향 설정, 테스트, AI 개발 조율 역할 수행
- 코드는 검토 및 테스트를 거쳐 수용되며, AI 생성 과정을 투명하게 공개
- 프로젝트는 AI 보조 개발의 한계와 가능성 탐구를 목적으로 함
주요 기능
- Markdown 실시간 미리보기(WYSIWYG) 와 문법 하이라이팅 지원
- 다중 포맷 지원: Markdown, JSON, YAML, TOML
- Tree Viewer로 JSON/YAML/TOML 구조를 계층적으로 탐색 및 인라인 편집 가능
- 정규식 검색·치환, 줄 이동(Alt+↑/↓) , 라인 복제(Ctrl+Shift+D) 등 생산성 기능 포함
- 자동 괄호·따옴표 닫기, 자동 저장, 라인 너비 설정, 미니맵, 코드 폴딩 기능 제공
MermaidJS 다이어그램 렌더링
-
MermaidJS를 이용해 11종의 다이어그램을 네이티브로 렌더링
- Flowchart, Sequence, Pie, State, Mindmap, Class, ER, Git Graph, Gantt, Timeline, User Journey
- Markdown 미리보기 내에서 직접 시각화 가능
워크스페이스 및 편집 환경
- Workspace Mode로 폴더 단위 열기, 파일 트리 탐색, 빠른 파일 전환(Ctrl+P), 전체 검색(Ctrl+Shift+F) 지원
- Git 통합으로 수정·추가·무시 파일 상태를 시각적으로 표시
- 세션 복원 기능으로 탭, 커서 위치, 스크롤 상태를 재시작 시 복구
- Zen Mode로 집중형 글쓰기 환경 제공, Split View로 원본과 렌더링 동시 확인 가능
설치 및 빌드
- Windows, Linux(.deb, tar.gz), macOS(Intel/ARM) 용 사전 빌드 바이너리 제공
-
Rust 1.70+ 환경에서 직접 빌드 가능
-
cargo build --release명령으로 실행 파일 생성
-
- Linux에서는
.deb설치 시/usr/bin/ferrite에 등록되고.md,.json,.yaml,.toml파일 연동
단축키 및 설정
- 파일 조작: Ctrl+N(새 파일), Ctrl+O(열기), Ctrl+S(저장), Ctrl+W(탭 닫기)
- 탐색: Ctrl+Tab(다음 탭), Ctrl+P(파일 전환), Ctrl+Shift+F(파일 검색)
- 편집: Ctrl+Z(되돌리기), Ctrl+G(라인 이동), Ctrl+B(굵게), Ctrl+K(링크 삽입)
- 보기: F11(전체화면), Ctrl+,(설정 열기), Ctrl+Shift+[ / ](모두 접기/펼치기)
- 설정 파일은 OS별 경로에 저장되며, 테마·폰트·자동저장·라인 너비 등 사용자 지정 가능
기술 스택
- 언어: Rust 1.70+
- GUI 프레임워크: egui 0.28 + eframe 0.28
- Markdown 파서: comrak 0.22
- 문법 하이라이팅: syntect 5.1
- Git 통합: git2 0.19
- CLI 파싱: clap 4
- 파일 다이얼로그: rfd 0.14
- 클립보드: arboard 3
- 파일 감시: notify 6
- 퍼지 매칭: fuzzy-matcher 0.3
개발 및 기여
- 기여자 4명이 활동 중이며, Pull Request와 Issue를 통한 협업 가능
-
cargo fmt,cargo clippy,cargo test등을 통한 코드 품질 검증 절차 제공 - ROADMAP.md에 향후 기능 계획과 알려진 이슈 명시
사용된 주요 라이브러리 및 도구
- egui, comrak, syntect, git2, Inter/JetBrains Mono 폰트
- Claude(Anthropic) , Cursor, Task Master 등 AI 개발 도구 사용
요약
- Ferrite는 Rust와 AI 협업으로 개발된 오픈소스 Markdown 편집기로,
Mermaid 다이어그램 렌더링, 다중 포맷 지원, Git 통합, 고성능 egui UI를 특징으로 함 - AI 생성 코드의 실제 적용 사례로, 차세대 개발 자동화 흐름을 보여주는 프로젝트
Hacker News 의견들
-
Zed에서의 발전을 기대했는데, 이번 프로젝트도 꽤 흥미로움
나는 Obsidian을 무겁게 사용하는 편이지만, 기초에 집중한 진짜 대안이 나오면 좋겠음
최종 목표가 어떤 것인지 궁금함. 앞으로 지켜볼 예정임- 나는 Hyperclast를 개발 중인데, Obsidian 사용자로서 피드백을 받을 수 있을지 궁금함
아직 Show HN에 올릴 준비는 안 됐지만, 초기 피드백을 듣고 싶음 - 최종 목표는 빠르고 네이티브한 Markdown 에디터를 만드는 것임
Electron이나 웹 기술 없이 즉시 실행되는 형태로, v0.3.0에서는 Mermaid를 별도 crate로 분리하고, egui의 TextEdit 한계를 넘는 커스텀 위젯을 만들 예정임
장기적으로는 Rust 기반의 headless editor 라이브러리로 발전시키는 것이 목표임
자세한 내용은 ROADMAP.md 참고 바람 - Obsidian은 Electron으로 만들어졌는지 궁금함
- 나는 Hyperclast를 개발 중인데, Obsidian 사용자로서 피드백을 받을 수 있을지 궁금함
-
Ferrite가 주로 Windows에서 개발 및 테스트되었다는 점이 흥미로움
요즘 Windows 사용자는 2등 시민처럼 느껴졌는데 반가움
그런데 “이 프로젝트는 100% AI로 생성된 코드”라는 문구를 보고 약간 놀람
그래도 솔직하게 공개한 점은 좋음- 사실 이 AI 사용 고지는 오늘 추가된 것임
일부 사용자가 AI 사용 사실을 숨겼다고 지적한 뒤에야 추가된 것으로 보임
- 사실 이 AI 사용 고지는 오늘 추가된 것임
-
내 앱 Octarine을 살짝 홍보하고 싶음
Rust(Tauri) 로 작성된 WYSIWYG 스타일의 Markdown 노트 앱으로, 모든 데이터를 로컬에 저장함
“vibe coded”는 아님 :)- 정말 멋져 보임. 바로 다운로드 중임
-
요즘 HN에 AI 생성 콘텐츠가 많아졌는데, 이 글도 AI 생성 코드와 댓글로 가득한 듯함
- 왜 이 글은 다른 AI 관련 글들처럼 비판받지 않았는지 궁금함
아마도 인기 주제들을 잘 건드렸기 때문일 것 같음 - “100% AI 생성”이라는 문구를 놓쳤다가 보고 나서, 한순간에 “멋지다”에서 “손대고 싶지 않다”로 바뀌었음
- 왜 이 글은 다른 AI 관련 글들처럼 비판받지 않았는지 궁금함
-
스크린샷의 텍스트가 너무 작아서 돋보기가 필요할 정도임
스크린샷은 너무 크지도 작지도 않게, 내용이 잘 보이도록 찍는 게 좋음
특히 고해상도에서는 여백이 많으면 오히려 가독성이 떨어짐- 피드백 고마움! 지적이 정확함
고해상도로 찍어서 작은 화면에서는 읽기 힘들었음
창 크기를 줄이고 여백을 줄여 다시 찍을 예정임
- 피드백 고마움! 지적이 정확함
-
나는 Typora에 기꺼이 돈을 냈음
Markdown만 지원하지만, 이 영역은 여전히 가능성이 큼
특히 LLM이 구조화된 텍스트와 다이어그램을 많이 생성하는 요즘엔 더 그렇다고 생각함- Typora는 훌륭함. Ferrite는 비슷한 완성도를 목표로 하지만, Mermaid 통합과 JSON/YAML/TOML 트리 뷰어, 쉘 통합 파이프라인 기능을 제공함
게다가 오픈소스임 - Typora의 15달러 가격은 기능 대비 다소 비싸다고 느낌
- Typora의 미디어 자동 폴더 생성 기능이 특히 마음에 듦
- Typora는 훌륭함. Ferrite는 비슷한 완성도를 목표로 하지만, Mermaid 통합과 JSON/YAML/TOML 트리 뷰어, 쉘 통합 파이프라인 기능을 제공함
-
egui 프로젝트 중 이렇게 egui 특유의 스타일이 안 느껴지는 건 보기 드묾
egui로 작업해본 경험이 어떤지 궁금함- egui는 프로토타이핑에 훌륭함
즉시 모드라 상태 관리가 단순함
다만 TextEdit은 코드 에디터용이 아니라서 멀티 커서나 코드 폴딩이 안 됨
그래서 v0.3.0에서 커스텀 위젯으로 교체할 예정임
기본 테마가 너무 “egui스럽다”는 점은 커스텀 테마로 해결함 - Claude Code는 React를 더 선호했을 듯함
- egui는 프로토타이핑에 훌륭함
-
네이티브 Markdown 렌더링을 사용하는 게 반가움
다른 라이브러리처럼 Chromium을 띄워 스크린샷 찍는 방식이 아니라 좋음- 다만 네이티브 렌더링은 mermaid.js와의 레이아웃 불일치가 생길 수 있음
공유 시에는 다르게 보일 가능성이 있음 - 맞는 지적임. 완벽히 동일하진 않지만 속도와 JS 없는 환경이 장점임
Ferrite 내부에서는 문제없고, 공유용으로는 v0.3.0에서 SVG 내보내기 기능을 추가할 예정임
- 다만 네이티브 렌더링은 mermaid.js와의 레이아웃 불일치가 생길 수 있음
-
왜 저장소에서 AI 에이전트 설정과 지침을 제거했는지 궁금함 (.gitignore 참고)
- 좋은 지적임. Claude가 개발에 큰 도움을 준 건 사실임
다만 AI 설정 파일은 프로젝트에 필요하지 않아 제외했음
README에 AI 도움을 받았다는 내용을 추가할 예정임
코드는 검토 후 반영된 것이며, 무비판적으로 수용한 것은 아님 - 프로젝트가 “vibe coded” 느낌임
커밋이 10개뿐이고, 일부는 이모지 가득한 markdown 문서로 채워져 있음 - 개발자가 AI 사용을 공개하지 않으면 신뢰 경고 신호로 보임
- 좋은 지적임. Claude가 개발에 큰 도움을 준 건 사실임
-
Mermaid 파싱과 레이아웃만 별도 crate로 분리되면 유용할 것 같음
빠른 CLI 도구로 SVG/PDF/PNG 출력이 가능하면 좋겠음- 정확히 그게 v0.3.0의 계획임
약 7000줄짜리 Mermaid 렌더러를 독립 crate로 추출하고, SVG/PNG 출력과 CLI 지원을 추가할 예정임
순수 Rust로 작성되어 WASM 호환도 가능함. 기대해줬으면 함
- 정확히 그게 v0.3.0의 계획임