- Ferrite คือ โปรแกรมแก้ไขข้อความที่พัฒนาด้วย Rust สำหรับแก้ไขไฟล์ Markdown, JSON, YAML และ TOML ได้อย่างรวดเร็วและเบา
- ใช้ เฟรมเวิร์ก egui เพื่อมอบการตอบสนองระดับเนทีฟและสภาพแวดล้อมการทำงานข้ามแพลตฟอร์ม
- รองรับความสามารถหลากหลาย เช่น พรีวิวแบบ WYSIWYG, การเรนเดอร์ไดอะแกรม MermaidJS, การรวม Git, และ โหมดเวิร์กสเปซ
- โค้ด Rust และเอกสารทั้งหมดของโปรเจกต์ถูกสร้างโดย AI (Claude by Anthropic) โดยมนุษย์ทำหน้าที่ตรวจทานและทดสอบ
- เป็นกรณีศึกษาการนำการพัฒนาแบบมี AI ช่วยมาใช้จริง ซึ่งแสดงให้เห็นถึง ความเป็นไปได้ของการทำงานร่วมกันระหว่างระบบนิเวศ Rust กับการพัฒนาโดย AI
ภาพรวมของ Ferrite
- Ferrite เป็น โปรแกรมแก้ไขข้อความความเร็วสูงและน้ำหนักเบา ที่รองรับไฟล์ Markdown, JSON, YAML และ TOML
- เขียนด้วย Rust และ egui เพื่อรับประกันการตอบสนองระดับเนทีฟและการทำงานข้ามแพลตฟอร์ม
- พัฒนาและทดสอบเป็นหลักบน Windows และสามารถทำงานได้บน Linux และ macOS
- มีไบนารีที่บิลด์ไว้ล่วงหน้าสำหรับ Windows, Linux(.deb, tar.gz), macOS(Intel/ARM)
การพัฒนาด้วย AI
- โค้ด Rust เอกสาร และไฟล์ตั้งค่าทั้งหมดของ Ferrite เขียนโดย AI (Claude by Anthropic)
- นักพัฒนาทำหน้าที่กำหนดทิศทางผลิตภัณฑ์ ทดสอบ และประสานการพัฒนาร่วมกับ AI
- โค้ดจะถูกยอมรับหลังผ่านการตรวจทานและทดสอบ พร้อมเปิดเผยกระบวนการสร้างโดย AI อย่างโปร่งใส
- โปรเจกต์นี้มีเป้าหมายเพื่อ สำรวจข้อจำกัดและศักยภาพของการพัฒนาแบบมี AI ช่วย
ความสามารถหลัก
- รองรับ พรีวิว Markdown แบบเรียลไทม์ (WYSIWYG) และ syntax highlighting
- รองรับหลายฟอร์แมต: Markdown, JSON, YAML, TOML
- ใช้ Tree Viewer เพื่อสำรวจโครงสร้าง JSON/YAML/TOML แบบลำดับชั้นและแก้ไขแบบอินไลน์ได้
- มีความสามารถด้าน productivity เช่น ค้นหาและแทนที่ด้วย regex, ย้ายบรรทัด (Alt+↑/↓) และ คัดลอกบรรทัด (Ctrl+Shift+D)
- มีฟังก์ชัน ปิดวงเล็บ/เครื่องหมายคำพูดอัตโนมัติ, บันทึกอัตโนมัติ, ตั้งค่าความกว้างบรรทัด, minimap และ code folding
การเรนเดอร์ไดอะแกรม MermaidJS
- เรนเดอร์ไดอะแกรมได้แบบเนทีฟ 11 ประเภทด้วย MermaidJS
- 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 สำหรับดูต้นฉบับและผลเรนเดอร์พร้อมกัน
1 ความคิดเห็น
ความเห็นจาก Hacker News
ฉันคาดหวังว่าจะได้เห็นความคืบหน้าจาก Zed แต่โปรเจ็กต์นี้ก็น่าสนใจไม่น้อย
ฉันเป็นผู้ใช้ Obsidian แบบหนักมาก แต่ก็อยากเห็นทางเลือกจริงจังที่โฟกัสพื้นฐานออกมาสักที
เลยสงสัยว่าเป้าหมายสุดท้ายคืออะไร จะติดตามดูต่อไป
ยังไม่พร้อมจะเอาไปลง Show HN แต่ก็อยากได้ฟีดแบ็กช่วงแรก
ให้เปิดใช้งานได้ทันทีโดยไม่ต้องพึ่ง Electron หรือเว็บเทคโนโลยี และใน v0.3.0 มีแผนจะแยก Mermaid ออกเป็น crate ต่างหาก พร้อมสร้างวิดเจ็ตแบบกำหนดเองเพื่อก้าวข้ามข้อจำกัดของ TextEdit ใน egui
ในระยะยาว เป้าหมายคือพัฒนาให้เป็น headless editor library ที่เขียนด้วย Rust
ดูรายละเอียดเพิ่มเติมได้ที่ ROADMAP.md
น่าสนใจที่ Ferrite ถูกพัฒนาและทดสอบบน Windows เป็นหลัก
ช่วงนี้ผู้ใช้ Windows รู้สึกเหมือนเป็น พลเมืองชั้นสอง มานานแล้ว เลยดีใจที่ได้เห็นแบบนี้
แต่พอเห็นข้อความว่า “โปรเจ็กต์นี้เป็นโค้ดที่สร้างด้วย AI 100%” ก็แอบตกใจนิดหน่อย
ถึงอย่างนั้นก็ชอบที่เปิดเผยอย่างตรงไปตรงมา
ดูเหมือนว่าจะเพิ่มหลังจากมีผู้ใช้บางคนทักท้วงว่าเขาปกปิดการใช้ AI
ขอแอบโปรโมตแอปของฉัน Octarine นิดหน่อย
เป็นแอปจดโน้ต Markdown สไตล์ WYSIWYG ที่เขียนด้วย Rust(Tauri) และเก็บข้อมูลทั้งหมดไว้ในเครื่อง
ไม่ได้เป็น “vibe coded” :)
ช่วงนี้บน HN มีคอนเทนต์ที่สร้างด้วย AI เยอะขึ้นมาก และโพสต์นี้ก็ดูเหมือนจะเต็มไปด้วย โค้ดและคอมเมนต์ที่สร้างด้วย AI
น่าจะเป็นเพราะมันหยิบหัวข้อยอดนิยมมาจับได้ดี
ข้อความในสกรีนช็อตเล็กเกินไปจนแทบต้องใช้ แว่นขยาย
สกรีนช็อตควรถ่ายให้ไม่ใหญ่หรือเล็กเกินไป และต้องเห็นเนื้อหาได้ชัดเจน
โดยเฉพาะบนความละเอียดสูง ถ้ามีพื้นที่ว่างมากเกินไปกลับยิ่งอ่านยาก
ฉันถ่ายภาพด้วยความละเอียดสูง เลยทำให้อ่านยากบนหน้าจอเล็ก
จะย่อขนาดหน้าต่างและลดพื้นที่ว่างแล้วถ่ายใหม่
ฉันยินดีจ่ายเงินให้ Typora
แม้มันจะรองรับแค่ Markdown แต่ตลาดนี้ก็ยังมีโอกาสอีกมาก
โดยเฉพาะตอนนี้ที่ LLM สร้างข้อความแบบมีโครงสร้างและไดอะแกรมกันเยอะขึ้น ฉันยิ่งคิดแบบนั้น
แถมยังเป็นโอเพนซอร์สด้วย
หาดูยากมากที่จะมีโปรเจ็กต์ egui ที่ไม่มีกลิ่นสไตล์แบบ egui ชัด ๆ
เลยสงสัยว่าประสบการณ์การทำงานกับ egui เป็นอย่างไรบ้าง
เพราะเป็น immediate mode ทำให้การจัดการสถานะเรียบง่าย
แต่ TextEdit ไม่ได้ออกแบบมาสำหรับ code editor เลยไม่มี multi-cursor หรือ code folding
เพราะงั้นใน v0.3.0 จึงมีแผนจะเปลี่ยนไปใช้วิดเจ็ตแบบกำหนดเอง
ส่วนปัญหาที่ธีมเริ่มต้นดู “เป็น egui เกินไป” ก็แก้ด้วยธีมแบบกำหนดเอง
ดีใจที่ใช้ การเรนเดอร์ Markdown แบบเนทีฟ
ชอบที่ไม่ได้ใช้วิธีเปิด Chromium แล้วจับภาพหน้าจอเหมือนบางไลบรารี
เวลาแชร์อาจแสดงผลไม่เหมือนกัน
ภายใน Ferrite ไม่มีปัญหา และสำหรับการแชร์มีแผนจะเพิ่มฟีเจอร์ ส่งออก SVG ใน v0.3.0
สงสัยว่าทำไมถึงลบการตั้งค่าและคำสั่งของ AI agent ออกจาก repository (ดู .gitignore)
แต่ไฟล์ตั้งค่า AI ไม่จำเป็นต่อโปรเจ็กต์ จึงไม่รวมไว้
มีแผนจะเพิ่มข้อความใน README ว่าได้รับความช่วยเหลือจาก AI
โค้ดถูกตรวจทานก่อนนำมาใช้ ไม่ได้ยอมรับแบบไม่วิจารณญาณ
มีคอมมิตแค่ 10 ครั้ง และบางอันก็เต็มไปด้วยเอกสาร markdown ที่ใส่อีโมจิเต็มไปหมด
ถ้าแยกเฉพาะ Mermaid parsing และ layout ออกเป็น crate ต่างหากได้ก็น่าจะมีประโยชน์มาก
ถ้ามีเป็น CLI แบบเร็วที่ส่งออก SVG/PDF/PNG ได้ก็คงดี
มีแผนจะแยก Mermaid renderer ที่ยาวราว 7000 บรรทัดออกเป็น crate อิสระ และเพิ่มการส่งออก SVG/PNG พร้อมรองรับ CLI
เขียนด้วย Rust ล้วน จึงรองรับ WASM ได้ด้วย หวังว่าจะตั้งตารอกัน