gioser

tawasuyu/pineal

Backend-agnostic GPU visualization — a catalog of painters over one Canvas trait, in Rust.

Rust 82Markdown 69TOML 331099 Definiciones

⎇ 18a001b6ad1589e46574a0bc8323ab89d6b90356 Cargo.toml TOML · 459 líneas · 21.8 KB Historia crudo

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

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