← todos os apps v0.1.0 · released
COSLU Reader // built by coslu labz

Abre qualquer arquivo. Sem cloud, sem account, sem erro.

PDF, DOCX, XLSX, PSD, Parquet, SQLite, glTF, EPUB, ZIP recursivo — 80+ formatos em um binário de 12 MB. Formatos pesados carregam sob demanda, então o app abre rápido independente do catálogo. Quando algo não é renderizável, cai pra texto. Quando nem texto, cai pra hex. **Nada termina em erro.**

COSLU Reader · ícone vol. I
fig. 1 · COSLU Reader · ícone vol. I
§ 01
why

Abrir um arquivo virou um drama de tempo e licença.

Visualizadores vivem em silos: PDF aqui, planilha ali, imagem em outro lugar. Office cobra, alguns levam 5 segundos pra abrir, outros pedem login. Quando o formato é exótico — Parquet, PSD, glTF, SQLite — você acaba no Stack Overflow procurando "conversor online" que cobra ou exige upload. Queríamos um app local que abre **qualquer coisa** sem perguntar. Construímos.

§ 02
features

O que esse produto realmente faz.

№ 01

80+ formatos · famílias de viewers

Código, dados, documentos, imagens, áudio, vídeo, 3D, archives. Cada família tem seu viewer otimizado, e o app escolhe o certo sem depender da extensão estar correta.

pdf · docx · xlsx · psd · parquet · sqlite · gltf · epub
№ 02

Carga sob demanda · 12 MB base

Cada formato pesado é um chunk lazy. O entry tem ~198 KB e fica estável conforme o catálogo cresce. Cold-start O(1) no número de formatos suportados.

№ 03

Nada termina em erro

Cadeia de fallback: viewer da família → extração de texto best-effort → hex virtualizado. Mesmo formato proprietário desconhecido aparece — só não vai estar renderizado bonito.

№ 04

Detecção antes do load

Rust lê os primeiros bytes (magic bytes) em microssegundos, decide a família, e só aí injeta o chunk certo via initialization_script. Sem tentar tudo, sem falhar em silêncio.

№ 05

Local-first, integração opcional

Sem cloud, sem account, sem telemetria. Se você tem LibreOffice instalado, DOCX e PPTX rodam em fidelidade total via conversão local. Sem ele, caem pra extração de texto. Sua escolha.

№ 06

ZIP recursivo · e seguro

ZIP-in-ZIP, TAR-in-ZIP, GZIP-in-ZIP funcionam transparentemente. Com proteção contra zip-bomb e zip-slip: caps de profundidade e budget cumulativo de bytes descompactados.

§ 03
under the hood

Por que essas escolhas técnicas.

01 Tauri 2 · Rust · WebView2

Por que Tauri (de novo)

Electron empacota Chromium + Node.js. Tauri usa o WebView2 nativo do Windows, sem Node — isolamento estrutural contra RCE. 12 MB de base em vez de 200+. Mesma decisão dos outros apps COSLU, mesmo motivo: respeito ao usuário final.

02 Magic-byte sniff em Rust

O segredo do startup O(1)

O Rust faz sniff dos primeiros 8 KB do arquivo. Decide a família em microssegundos, antes do JavaScript entrar. Aí injeta o boot global certo via initialization_script dinâmico. Só o viewer necessário carrega — não importa quantos formatos o catálogo cresce, cold-start não muda.

03 Shiki · pdf.js · sqlite-wasm · SheetJS · three.js

Família, não formato

Não é 1-formato = 1-viewer. É família (tabular, documento, 3D) com modelo normalizado e decoders finos. Shiki é chunk compartilhado entre 50+ linguagens. PapaParse, sqlite-wasm, apache-arrow vivem cada um em seu chunk — o entry continua estável independente do crescimento.

04 DOMPurify · CSP · anti zip-bomb

Segurança endurecida

pdf.js com isEvalSupported:false e enableScripting:false (CVE-2024-4367 mitigada). Todo HTML não confiável passa por DOMPurify ≥3.4. SheetJS vendorizado via CDN com hash (versão npm vulnerável evitada). SQLite via build oficial do sqlite.org. Budget anti-DoS em archives.

§ 04
specs

A ficha técnica.

Tamanho base
12 MB
Entry chunk
~198 KB · estável
Cold start
< 1s · O(1) no catálogo
Formatos suportados
80+ (com 50+ linguagens via Shiki)
Plataformas
Windows 10/11 · WebView2
Licença
MIT
Versão atual
v0.1.0 · pré-release
§ 05
roadmap

Onde estamos · onde vamos.

  • [×] Fase 1 · texto, código, dados, imagem, hex, archive recursivo, fallback chain done
  • [×] Fase 2 · SQLite, XLSX, mídia A/V, fontes, Arrow/Feather, archive completo done
  • [×] Fase 3 · PDF, DOCX/PPTX, .ipynb, EPUB, 3D/CAD, PSD, binário estruturado done
  • [ ] CSP estrita + Isolation Pattern + lockdowns planned
  • [ ] Code signing Windows (Azure Trusted Signing) planned
  • [ ] RAW de câmera (CR2, NEF, ARW, DNG via libraw-wasm) planned
  • [ ] Mobile (iOS / Android) com file picker planned
  • [ ] Office legado (.doc, .ppt, .xls) e suítes Apple (.pages, .key, .numbers) planned
§ 06 · next O próximo produto COSLU. MarkdownReader