tawasuyu

tawasuyu/pata

Declarative desktop frame (bars/dock/tray/widgets), portable Linux/Wawa, on Llimphi.

Rust 281Markdown 34TOML 15JSON 16602 Definiciones

⎇ 21e4c25c992d2a8166a4923260f69fd9991f9bd1 Cargo.toml TOML · 439 líneas · 21.6 KB Historia crudo

chore: migra host gioser.net → tawasuyu.net (mismo repo, rebrand tawasuyu) 21e4c25c9 · Sergio ·

1# Cargo.toml raíz STANDALONE de pata — front-door sobre Llimphi.
2# Solo el código de pata; Llimphi y lo fundacional por git-dep del monorepo gioser.git.
3[workspace]
4resolver = "2"
5members = [
6    "02_ruway/pata/pata-config",
7    "02_ruway/pata/pata-core",
8    "02_ruway/pata/pata-host",
9    "02_ruway/pata/pata-llimphi",
10]
11
12[workspace.package]
13version = "0.1.0"
14edition = "2021"
15rust-version = "1.80"
16license = "MIT"
17authors = ["Sergio <gerencia@jlsoltech.com>"]
18publish = false
19repository = "https://git.tawasuyu.net/tawasuyu/pata"
20
21[workspace.dependencies]
22
23# === Registro de apps / menú global ===
24app-bus = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
25# === Serialización ===
26serde = { version = "1", features = ["derive"] }
27serde_json = "1"
28lsp-types = "0.97"
29serde-big-array = "0.5"
30postcard = { version = "1", features = ["use-std"] }
31toml = "0.8"
32ron = "0.8"
33bincode = "1"
34base64 = "0.22"
35
36# === Errores ===
37thiserror = "2"           # bump uniforme; arje (era 1) puede requerir ajustes menores
38anyhow = "1"
39
40# === Async ===
41tokio = { version = "1", features = ["full"] }
42tokio-util = { version = "0.7", features = ["compat"] }
43async-trait = "0.1"
44futures = "0.3"
45
46# === Observabilidad ===
47tracing = "0.1"
48tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
49
50# === Linux primitives (arje) ===
51nix = { version = "0.29", features = ["signal", "process", "sched", "mount", "fs", "socket", "net", "user"] }
52libc = "0.2"
53
54# === IDs / Hash / Crypto ===
55ulid = { version = "1", features = ["serde"] }
56uuid = { version = "1", features = ["v4", "rng-getrandom"] }
57sha2 = "0.10"
58blake3 = "1.5"
59ed25519-dalek = "2"
60aes-gcm = "0.10"
61chacha20poly1305 = "0.10"
62argon2 = "0.5"
63rand = "0.8"
64
65# === WASM (arje) ===
66# wasmi 1.0: unifica la versión con renaser (su kernel ya corre 1.0), para
67# que el ABI WASM del host sea idéntico en Linux y en bare-metal.
68wasmi = "1.0"
69wat = "1"
70
71# === Storage / DB ===
72sled = "0.34"
73rusqlite = { version = "0.31", features = ["bundled", "blob"] }
74
75# === Ingesta de documentos (iniy-ingest: PDF / EPUB) ===
76pdf-extract = "0.7"
77epub = "2.1"
78
79# === Bulk import Wikipedia (iniy-wiki dump) ===
80bzip2 = "0.4"
81
82# === Compresión (minga multi-bundle) ===
83zstd = "0.13"
84
85# === HTTP server (iniy-server) ===
86axum = "0.7"
87tower = "0.5"
88
89# === ANN sobre embeddings (iniy nli --ann) ===
90instant-distance = "0.6"
91
92# === P2P (minga) ===
93libp2p = { version = "0.56", features = ["tokio", "tcp", "noise", "yamux", "macros", "kad", "identify", "relay", "dcutr", "autonat", "mdns"] }
94libp2p-stream = "=0.4.0-alpha"
95libp2p-allow-block-list = "0.6"
96
97# === SSH (ssh, sandokan RemoteEngine, matilda) ===
98russh = "0.54"
99
100# === Math determinista cross-platform (dominium) ===
101libm = "0.2"
102
103# === SMF (takiy-midi) ===
104# midly: parser/emitter SMF tipo 0/1, no_std-friendly, sin allocs en hot path.
105midly = "0.5"
106
107# === Code parsing (minga) ===
108arboard = "3"
109ropey = "1.6"
110tree-sitter = "0.24"
111tree-sitter-rust = "0.23"
112tree-sitter-python = "0.23"
113tree-sitter-typescript = "0.23"
114tree-sitter-javascript = "0.23"
115tree-sitter-go = "0.23"
116
117# === FS notify ===
118notify = "6.1"
119
120# === Grafos (iniy, nakui-core ya lo usa directo en 0.6) ===
121petgraph = "0.6"
122
123# === Image decoding (nahual-image-viewer-llimphi) ===
124# default-features = false: nos quedamos con PNG + JPEG + WebP (lossless).
125# tullpu-render exporta a las tres; AVIF/TIFF/… los habilitamos si una app
126# los pide específicamente.
127image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] }
128
129# === FUSE (minga-vfs) ===
130# default-features = false: prescinde de pkg-config/libfuse-dev en build.
131# El montaje pasa a ser Rust puro (vía el helper `fusermount3` en runtime).
132fuser = { version = "0.15", default-features = false }
133
134# === CLI / auth (minga) ===
135clap = { version = "4", features = ["derive"] }
136rpassword = "7"
137
138# === PAM (auth-core) ===
139pam = "0.8"
140
141# === D-Bus (arje compat) ===
142zbus = { version = "4", default-features = false, features = ["tokio"] }
143
144# === Tests ===
145tempfile = "3"
146
147# === Llimphi (motor gráfico soberano) ===
148# wgpu sobre Vulkan/Metal/DX12, winit para ventana en dev Linux.
149# raw-window-handle 0.6 alinea winit 0.30 con wgpu 24.
150# vello 0.5 = rasterizador vectorial sobre wgpu 24.
151# taffy 0.9 = motor Flexbox/Grid puro Rust (ya pulled por transitivos, lo alineamos).
152# parley 0.2 = shaping/layout de texto compatible con peniko 0.4 (que vello 0.5 expone).
153wgpu = "24"
154winit = "0.30"
155raw-window-handle = "0.6"
156pollster = "0.4"
157vello = "0.5"
158taffy = "0.9"
159# parley = shaping completo (bidi, ligatures, fallback CJK/emoji vía fontique, line break).
160parley = "0.4"
161# Bucle Elm (input→update→view→layout→raster→present). Lo consumen las apps.
162llimphi-ui = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
163# Paleta semántica compartida por las apps y los widgets.
164llimphi-theme = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
165# Tweens y helpers de animación sobre el bucle Elm.
166llimphi-motion = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
167# Iconos vectoriales (BezPath en grid 24×24) compartidos por todas las apps.
168llimphi-icons = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
169# Widgets reusables sobre llimphi-ui — uno por crate.
170llimphi-widget-app-header = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
171llimphi-widget-banner = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
172llimphi-widget-button = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
173llimphi-widget-card = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
174llimphi-clipboard = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
175llimphi-widget-context-menu = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
176llimphi-widget-edit-menu = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
177llimphi-widget-menubar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
178llimphi-widget-list = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
179llimphi-widget-grid = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
180llimphi-widget-slider = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
181llimphi-widget-scroll = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
182llimphi-widget-splitter = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
183llimphi-widget-stat-card = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
184llimphi-widget-tabs = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
185llimphi-module-command-palette = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
186llimphi-module-diff-viewer = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
187llimphi-module-fif = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
188llimphi-module-file-picker = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
189llimphi-module-bookmarks = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
190llimphi-module-mini-map = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
191llimphi-module-shuma-term = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
192llimphi-module-symbol-outline = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
193llimphi-plugin-host = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
194llimphi-widget-theme-switcher = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
195llimphi-widget-text-area = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
196llimphi-widget-text-editor-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
197llimphi-widget-text-editor = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
198llimphi-widget-text-editor-lsp = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
199llimphi-widget-text-input = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
200llimphi-widget-tiled = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
201llimphi-widget-nodegraph = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
202llimphi-widget-tree = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
203llimphi-widget-navigator = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
204# Sello vectorial wawa (rombo + W implícita + Merkle Core).
205llimphi-widget-wawa-mark = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
206# Widgets de elegancia transversal (tooltip, spinner, progress, toast,
207# modal, empty, status-bar, shortcuts-help, splash).
208llimphi-widget-tooltip = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
209llimphi-widget-spinner = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
210llimphi-widget-progress = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
211llimphi-widget-toast = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
212llimphi-widget-modal = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
213llimphi-widget-empty = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
214llimphi-widget-status-bar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
215llimphi-widget-shortcuts-help = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
216llimphi-widget-timeline = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
217llimphi-widget-splash = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
218# Controles de formulario y signaling (switch, segmented, breadcrumb,
219# badge, avatar, skeleton, field).
220llimphi-widget-switch = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
221llimphi-widget-segmented = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
222llimphi-widget-dock-rail = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
223llimphi-widget-breadcrumb = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
224llimphi-widget-badge = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
225llimphi-widget-avatar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
226llimphi-widget-skeleton = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
227llimphi-widget-field = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
228# Firma visual transversal (gradient sutil + hairline accent).
229llimphi-widget-panel = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
230llimphi-widget-panes = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
231llimphi-workspace = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
232# Abstracción Selector — host (paths) + wawa (khipus).
233llimphi-module-selector = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
234
235# === Filesystem helpers ===
236directories = "5"
237
238# === Diff line-based (llimphi-module-diff-viewer) ===
239# `similar` es la crate de facto: implementa Myers + Patience + LCS,
240# expone `TextDiff` con ChangeTag por línea (Equal/Insert/Delete),
241# zero deps fuera de std. La 2.x es estable hace años.
242similar = "2"
243
244# === Fuzzy matching (shuma-history) ===
245# nucleo-matcher = mismo matcher que helix-editor: rápido, Unicode-correct,
246# bonus por prefijos, ranking estable. La versión 0.3 expone el API simple
247# que necesitamos (Matcher + Pattern + score).
248nucleo-matcher = "0.3"
249
250# === Transporte autenticado (shuma-link) ===
251# snow = framework Noise pure-rust. Lo usamos en modo Noise_XK (cliente
252# conoce la pubkey del servidor, server descubre la del cliente y la
253# valida contra una allowlist). ChaCha20-Poly1305 + X25519 + BLAKE2s.
254# La versión 0.9 viene pinneada por libp2p, así nos alineamos.
255snow = "0.9"
256hex = "0.4"
257
258# === PTY + emulador de terminal (shuma-exec, módulos REPL) ===
259# portable-pty aloja un PTY cross-platform; lo usamos para los
260# comandos TUI tipo vim/htop/less que necesitan un terminal de verdad.
261# vt100 parsea la secuencia de bytes que el PTY emite (ANSI + cursor
262# movement + erase + screen state) y mantiene un buffer de pantalla
263# renderizable como grid.
264portable-pty = "0.9"
265vt100 = "0.16"
266
267# === WASM web (gioser) ===
268wasm-bindgen = "0.2"
269wasm-bindgen-futures = "0.4"
270js-sys = "0.3"
271web-sys = "0.3"
272glam = "0.30"
273
274# === Markdown (pluma) ===
275pulldown-cmark = { version = "0.12", default-features = false, features = ["html"] }
276
277# === Archivos comprimidos (nahual archive viewer) ===
278# Sólo listamos el directorio central (nombres/tamaños); no descomprimimos,
279# por eso default-features=false alcanza para ZIP. Para tar.gz sí
280# descomprimimos en streaming con flate2 (ya declarado arriba), saltando
281# los datos de cada entrada — sólo leemos headers.
282zip = { version = "2.4", default-features = false }
283tar = { version = "0.4", default-features = false }
284
285# === Fuentes (nahual font viewer) ===
286# Parseo de TTF/OTF/TTC y extracción de contornos de glifo a paths.
287ttf-parser = "0.25"
288
289# ============================================================
290# Intra-workspace deps de nahual (referenciadas por workspace = true)
291# ============================================================
292nahual-text-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
293nahual-image-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
294nahual-thumb-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
295nahual-gallery-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
296nahual-video-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
297nahual-card-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
298nahual-audio-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
299nahual-tree-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
300nahual-hex-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
301nahual-table-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
302nahual-markdown-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
303nahual-archive-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
304nahual-font-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
305nahual-map-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
306nahual-geo-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
307nahual-viewer-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
308nahual-file-explorer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
309
310# ============================================================
311# Intra-workspace deps de pineal (módulo de gráficos)
312# ============================================================
313pineal-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
314pineal-render = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
315pineal-cartesian = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
316pineal-stream = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
317pineal-mesh = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
318pineal-financial = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
319pineal-polar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
320pineal-heatmap = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
321pineal-treemap = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
322pineal-flow = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
323pineal-phosphor = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
324pineal-export = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
325pineal-hexbin = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
326pineal-contour = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
327pineal-bars = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
328pineal = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
329
330# ============================================================
331# Intra-workspace deps de iniy (laboratorio semántico de creencias)
332# ============================================================
333iniy-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
334iniy-ingest = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
335iniy-extract = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
336iniy-nli = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
337iniy-nli-llm = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
338iniy-graph = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
339iniy-store = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
340
341# === auto: declarados por crates internos faltantes ===
342cosmos-coords = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
343cosmos-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
344cosmos-ephemeris = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
345cosmos-time = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
346cosmos-wcs = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
347
348# === auto: externas de eternal ===
349celestial-eop-data = { version = "0.1"}
350approx = "0.5"
351byteorder = "1.5"
352cc = "1.0"
353chrono = "0.4"
354crc32fast = "1.4"
355criterion = "0.5"
356csv = "1.4"
357flate2 = "1.0"
358glob = "0.3"
359indicatif = "0.18"
360lz4_flex = "0.11"
361memmap2 = "0.9"
362mockito = "1.0"
363ndarray = "0.15"
364num-traits = "0.2"
365once_cell = "1.19"
366parking_lot = "0.12"
367png = "0.18"
368proptest = "1.4"
369quick-xml = "0.31"
370rayon = "1.8"
371regex = "1.11"
372reqwest = "0.12"
373tiff = "0.11"
374wide = "0.7"
375wiremock = "0.6"
376
377# === i18n (rimay-localize) ===
378fluent-bundle = "0.15"
379unic-langid = { version = "0.9", features = ["macros"] }
380sys-locale = "0.3"
381
382# === Servo (puriy-engine) ===
383# Crates publicados de Servo embebibles individualmente. html5ever/markup5ever
384# ya entran via ammonia→surrealdb→nakui, así que alineamos versión para no
385# duplicar el árbol. markup5ever_rcdom es el DOM Rc-based simple (suficiente
386# para Fase 2: parsear y renderizar, sin scripting). cssparser es el tokenizer
387# CSS de Stylo, sirve para inline styles. ureq = HTTP síncrono minimalista,
388# evita pull de tokio en el engine.
389html5ever = "0.39"
390markup5ever = "0.39"
391markup5ever_rcdom = "0.39"
392cssparser = "0.35"
393url = "2"
394ureq = { version = "2", default-features = false, features = ["tls"] }
395
396# === takiy-synth (SoundFont MIDI) ===
397# rustysynth = sintetizador SF2 puro Rust, MIT. Reemplaza el oscilador
398# feo de takiy-synth por muestras reales (FluidR3, GeneralUser GS, etc).
399rustysynth = "1.3"
400
401# === takiy-playback (audio device output) ===
402# cpal = backend de audio cross-platform (ALSA/PulseAudio/Pipewire en
403# Linux, WASAPI en Windows, CoreAudio en macOS). Lo usamos sólo para
404# abrir el device default y empujar muestras f32 — nada de mezclado
405# ni efectos en el callback.
406cpal = "0.15"
407
408# === media-source-wav (decoder PCM en disco) ===
409# hound = lector/escritor WAV puro-Rust, sin deps nativas. Soporta PCM
410# entero (8/16/24/32) y float (32). Suficiente para abrir samples y
411# stems de prueba sin meter ffmpeg/symphonia.
412hound = "3.5"
413
414# === media-source-{mp3,flac,vorbis} (decoders vía symphonia) ===
415# symphonia es una colección de decoders puro-Rust mantenida. `mp3` cubre
416# media-source-mp3; `flac` (decoder + demuxer FLAC nativo) cubre
417# media-source-flac (lossless); `vorbis` + `ogg` (codec + demuxer Ogg)
418# cubren media-source-vorbis (lossy clásico, libre de patentes). Sin aac:
419# ese tier patentado entra por shared/foreign-av.
420symphonia = { version = "0.5", default-features = false, features = ["mp3", "flac", "vorbis", "ogg"] }
421
422# === media-source-opus (decoder Opus NATIVO puro-Rust) ===
423# Opus es el formato de audio nativo de gioser (par del video AV1). ogg
424# demuxea las páginas Ogg; opus-wave es un port puro-Rust de libopus
425# (SILK+CELT, sin C ni FFI) — par del rav1d del lado video.
426ogg = "0.9"
427opus-wave = "3"
428
429# === media-source-webm (demux nativo Matroska/WebM) ===
430# matroska-demuxer es un demuxer puro-Rust de MKV/WebM (EBML). Saca los
431# paquetes de los tracks V_AV1 y A_OPUS para alimentar a media-source-av1
432# y media-source-opus — un .webm AV1+Opus se reproduce 100% nativo.
433matroska-demuxer = "0.7"
434# === git-deps al monorepo (agregados por la extracción) ===
435card-sidecar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
436chasqui-card = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
437pluma-llm = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
438shuma-exec = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }
439shuma-line = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.1.0" }