- Ferrite é um editor de texto baseado em Rust para editar arquivos Markdown, JSON, YAML e TOML de forma rápida e leve
- Usa o framework egui para oferecer responsividade em nível nativo e um ambiente de execução multiplataforma
- Suporta diversos recursos, como pré-visualização WYSIWYG, renderização de diagramas MermaidJS, integração com Git e modo de workspace
- Todo o código Rust e a documentação do projeto foram gerados por IA (Claude, da Anthropic), enquanto humanos ficaram responsáveis pela revisão e pelos testes
- Como caso real de aplicação de desenvolvimento assistido por IA, é um projeto que mostra as possibilidades de colaboração entre o ecossistema Rust e o desenvolvimento com IA
Visão geral do Ferrite
- Ferrite é um editor de texto rápido e leve com suporte a arquivos Markdown, JSON, YAML e TOML
- Foi escrito em Rust e egui, garantindo responsividade em nível nativo e execução multiplataforma
- Foi desenvolvido e testado principalmente no Windows, mas também pode rodar em Linux e macOS
- Há binários pré-compilados para Windows, Linux (.deb, tar.gz) e macOS (Intel/ARM)
Desenvolvimento com base em IA
- Todo o código Rust, a documentação e os arquivos de configuração do Ferrite foram escritos por IA (Claude, da Anthropic)
- O desenvolvedor ficou responsável por definir a direção do produto, testar e coordenar o desenvolvimento com IA
- O código é aceito após revisão e testes, e o processo de geração por IA é divulgado com transparência
- O projeto tem como objetivo explorar os limites e as possibilidades do desenvolvimento assistido por IA
Principais recursos
- Suporte a pré-visualização Markdown em tempo real (WYSIWYG) e realce de sintaxe
- Suporte a múltiplos formatos: Markdown, JSON, YAML, TOML
- O Tree Viewer permite explorar estruturas de JSON/YAML/TOML de forma hierárquica e editá-las inline
- Inclui recursos de produtividade como busca e substituição com regex, mover linha (Alt+↑/↓) e duplicar linha (Ctrl+Shift+D)
- Oferece fechamento automático de parênteses e aspas, salvamento automático, configuração da largura da linha, minimapa e dobramento de código
Renderização de diagramas MermaidJS
- Renderiza nativamente 11 tipos de diagrama com MermaidJS
- Flowchart, Sequence, Pie, State, Mindmap, Class, ER, Git Graph, Gantt, Timeline, User Journey
- Permite visualização direta dentro da prévia de Markdown
Workspace e ambiente de edição
- Com o Workspace Mode, é possível abrir pastas, navegar pela árvore de arquivos, alternar rapidamente entre arquivos (Ctrl+P) e fazer busca global (Ctrl+Shift+F)
- A integração com Git exibe visualmente o status de arquivos modificados, adicionados e ignorados
- O recurso de restauração de sessão recupera abas, posição do cursor e estado de rolagem ao reiniciar
- O Zen Mode oferece um ambiente de escrita focado, e o Split View permite ver simultaneamente a fonte e a renderização
1 comentários
Comentários do Hacker News
Eu esperava avanços no Zed, mas este projeto também parece bem interessante
Sou um usuário pesado do Obsidian, mas adoraria ver surgir uma alternativa de verdade, focada no básico
Fico curioso sobre qual é o objetivo final. Vou acompanhar daqui para frente
Ainda não está pronto para um Show HN, mas quero ouvir impressões iniciais
Algo que abra instantaneamente, sem Electron nem tecnologias web; na v0.3.0, a ideia é separar o Mermaid em um crate próprio e criar um widget customizado que supere as limitações do TextEdit do egui
No longo prazo, o objetivo é evoluir para uma biblioteca de editor headless baseada em Rust
Consulte o ROADMAP.md para mais detalhes
É interessante que o Ferrite tenha sido desenvolvido e testado principalmente no Windows
Ultimamente, usuários de Windows têm se sentido como cidadãos de segunda classe, então isso é bem-vindo
Mas fiquei um pouco surpreso ao ver a frase “este projeto é composto por código 100% gerado por IA”
Ainda assim, foi bom ver isso divulgado de forma honesta
Pelo visto, só foi incluído depois que alguns usuários apontaram que o uso de IA estava sendo escondido
Quero fazer uma pequena propaganda do meu app Octarine
É um app de notas Markdown em estilo WYSIWYG, escrito em Rust (Tauri), com todos os dados salvos localmente
Não foi feito no “vibe coding” :)
Ultimamente tem havido muito conteúdo gerado por IA no HN, e este post também parece estar cheio de código e comentários gerados por IA
Provavelmente porque tocou muito bem em temas populares
O texto das capturas de tela está tão pequeno que quase precisa de lupa
É melhor tirar screenshots que não sejam nem grandes nem pequenas demais, mas em que o conteúdo fique claramente visível
Principalmente em alta resolução, muito espaço em branco pode até piorar a legibilidade
Tirei em alta resolução, então ficou difícil de ler em telas pequenas
Vou reduzir o tamanho da janela e diminuir as margens para tirar novamente
Paguei Typora com gosto
Ele só oferece suporte a Markdown, mas ainda há muito potencial nesse espaço
Especialmente agora que os LLMs geram bastante texto estruturado e diagramas
Além disso, é open source
É raro ver um projeto em egui que não tenha aquela cara típica de egui
Fico curioso sobre como foi a experiência de trabalhar com egui
Como é immediate mode, o gerenciamento de estado é simples
Mas o TextEdit não foi feito para editor de código, então não tem múltiplos cursores nem code folding
Por isso ele será substituído por um widget customizado na v0.3.0
O fato de o tema padrão ser muito “com cara de egui” foi resolvido com um tema personalizado
É bom ver o uso de renderização nativa de Markdown
Melhor do que a abordagem de outras bibliotecas que abrem o Chromium e tiram screenshots
Ao compartilhar, há chance de ficar diferente
Dentro do Ferrite isso não é problema e, para compartilhamento, a v0.3.0 deve adicionar exportação em SVG
Fico curioso sobre por que as configurações e instruções do agente de IA foram removidas do repositório (veja o .gitignore)
Mas os arquivos de configuração de IA não são necessários para o projeto, então foram excluídos
Vou adicionar ao README uma nota sobre a ajuda de IA
O código foi incorporado após revisão, e não aceito de forma acrítica
Há só 10 commits, e alguns deles estão cheios de documentos markdown lotados de emoji
Seria útil separar só o parsing e o layout do Mermaid em um crate próprio
Seria bom poder ter uma ferramenta CLI rápida para gerar SVG/PDF/PNG
A ideia é extrair o renderizador Mermaid de cerca de 7 mil linhas para um crate independente e adicionar saída em SVG/PNG e suporte a CLI
Como foi escrito em Rust puro, também pode ser compatível com WASM. Espero que estejam animados com isso