Files
Marcos Paulo c78fd488cc
ci / ci (macos-latest) (push) Has been cancelled
ci / ci (ubuntu-latest) (push) Has been cancelled
ci / ci (windows-latest) (push) Has been cancelled
feat: registry core (model, guard, verify, store, net, install, commands), registry browser UI, signing tool, size profile and font dedupe, lazy Hebrew/Arabic fonts, htmlmd/srs/textdiff crates
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 17:28:10 -03:00

125 lines
6.0 KiB
TOML

[workspace]
resolver = "3"
members = ["crates/*", "apps/*", "xtask"]
default-members = ["crates/*", "apps/notescraft", "apps/notescraft-cli", "xtask"]
[workspace.package]
version = "0.1.0"
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.95"
repository = "https://git.marcospaulo.dev.br/masi/notescraft"
[workspace.dependencies]
craft-ui = { git = "https://git.marcospaulo.dev.br/masi/craft-libs", rev = "7fcee66b8eef8eac3c7644fd024e1f1b051f5a3e", features = ["serde"] }
craft-atomic = { git = "https://git.marcospaulo.dev.br/masi/craft-libs", rev = "7fcee66b8eef8eac3c7644fd024e1f1b051f5a3e" }
craft-settings = { git = "https://git.marcospaulo.dev.br/masi/craft-libs", rev = "7fcee66b8eef8eac3c7644fd024e1f1b051f5a3e" }
craft-quit = { git = "https://git.marcospaulo.dev.br/masi/craft-libs", rev = "7fcee66b8eef8eac3c7644fd024e1f1b051f5a3e" }
craft-print = { git = "https://git.marcospaulo.dev.br/masi/craft-libs", rev = "7fcee66b8eef8eac3c7644fd024e1f1b051f5a3e" }
# internal
notescraft-vault = { path = "crates/vault" }
notescraft-git = { path = "crates/git" }
notescraft-vim = { path = "crates/vim" }
notescraft-math = { path = "crates/math" }
notescraft-lottie = { path = "crates/lottie" }
notescraft-acp = { path = "crates/acp" }
notescraft-pdf = { path = "crates/pdf" }
notescraft-markdown = { path = "crates/markdown" }
notescraft-syntax = { path = "crates/syntax" }
notescraft-regex = { path = "crates/regex" }
notescraft-index = { path = "crates/index" }
notescraft-backlinks = { path = "crates/backlinks" }
notescraft-blocks = { path = "crates/blocks" }
notescraft-knowledge = { path = "crates/knowledge" }
notescraft-lint = { path = "crates/lint" }
notescraft-canvas = { path = "crates/canvas" }
notescraft-graph = { path = "crates/graph" }
notescraft-bases = { path = "crates/bases" }
notescraft-templates = { path = "crates/templates" }
notescraft-sync = { path = "crates/sync" }
notescraft-collab = { path = "crates/collab" }
notescraft-annotate = { path = "crates/annotate" }
notescraft-calendar = { path = "crates/calendar" }
notescraft-tasks = { path = "crates/tasks" }
notescraft-textdiff = { path = "crates/textdiff" }
notescraft-htmlmd = { path = "crates/htmlmd" }
notescraft-srs = { path = "crates/srs" }
notescraft-templater = { path = "crates/templater" }
notescraft-plugins = { path = "crates/plugins" }
notescraft-themes = { path = "crates/themes" }
notescraft-engine = { path = "crates/engine" }
notescraft-editor = { path = "crates/editor" }
notescraft-ui-egui = { path = "crates/ui-egui" }
notescraft-mcp = { path = "crates/mcp" }
notescraft-i18n = { path = "crates/i18n" }
notescraft-diagrams = { path = "crates/diagrams" }
notescraft-whiteboard = { path = "crates/whiteboard" }
notescraft-testkit = { path = "crates/testkit" }
# external
flate2 = { version = "1", default-features = false, features = ["rust_backend"] }
rfd = "0.17"
thiserror = "2"
# Native macOS menu bar (apps/notescraft only; owner-approved: close/minimise/zoom live in the menu bar since the title bar is gone). No default features: no GTK.
muda = { version = "=0.21.2", default-features = false }
egui = { version = "0.36", default-features = false }
unicode-bidi = { version = "0.3.18", default-features = false, features = ["std", "hardcoded-data"] }
egui_extras = { version = "0.36", default-features = false, features = ["svg"] }
# Clipboard images and file lists for paste (owner-approved 2026-10-20; already in the lockfile through egui-winit). image-data only: no default features.
arboard = { version = "3.6", default-features = false, features = ["image-data"] }
eframe = { version = "0.36", default-features = false }
egui_kittest = "0.36"
log = "0.4"
# Audio output for UI sounds; the same version SoundCraft, FilmCraft and EffectCraft use.
cpal = "0.16"
notify = "8"
pulldown-cmark = { version = "0.13", default-features = false }
toml = "1"
# Content search over the files on disk before the index is ready (the ripgrep library crates; engine only; owner-approved 2026-10-18).
ignore = "0.4"
grep-regex = "0.1"
grep-searcher = "0.1"
# Syntax highlighting for fenced code; pure-Rust regex backend, no onig (owner-approved).
syntect = { version = "5", default-features = false, features = ["parsing", "default-syntaxes", "yaml-load", "regex-fancy"] }
# SHA-256 of downloaded grammars (pure Rust, RustCrypto; owner-approved 2026-10-18).
sha2 = { version = "0.11", default-features = false }
# Sync server (apps/notescraft-sync-server only; owner-approved 2026-10-19).
axum = { version = "0.8", default-features = false, features = ["http1", "tokio", "json", "query"] }
tokio = { version = "1", default-features = false, features = ["rt-multi-thread", "macros", "net", "signal", "time", "sync"] }
rusqlite = { version = "0.37", features = ["bundled"] }
# Blocking HTTP client with rustls (sync server tests now, the engine sync client next).
ureq = { version = "3", default-features = false, features = ["rustls", "json"] }
# ed25519 verification of registry entries (owner-approved 2026-10-21, already linked through rustls).
ring = { version = "0.17", default-features = false }
# Pure-Rust WebAssembly interpreter, same configuration as photocraft-plugins.
wasmi = { version = "2.0.0", default-features = false, features = ["std", "validate", "stable", "portable-dispatch"] }
wat = "1.228"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[workspace.lints.rust]
unsafe_code = "forbid"
[workspace.lints.clippy]
pedantic = { level = "warn", priority = -1 }
dbg_macro = "warn"
todo = "warn"
[profile.dev.package."*"]
opt-level = 2
[profile.dev]
opt-level = 1
# Line tables keep file:line in panic backtraces but drop variable info, which roughly halves link
# time and PDB size for the ~260 test binaries (#2204). CI sets the same through
# CARGO_PROFILE_DEV_DEBUG. To inspect locals in a debugger, build with CARGO_PROFILE_DEV_DEBUG=true.
debug = "line-tables-only"
[profile.release]
lto = "thin"
codegen-units = 1
# Size: owner-approved 2026-10-21 (specs/registry/measurements.md): -8 MB on macOS; crash backtraces lose symbol names.
opt-level = "s"
strip = "symbols"