Offer explicit byte and node budgets for WSON parsing and serialization
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start with utils/src/wson/mod.rs:20 and inspect the public parse/write APIs plus existing depth guards. Before implementation, agree the caller-selectable byte, node, and output-budget semantics with @LunaStev, including structured errors and compatibility requirements. Done means budgeted APIs reject excess shallow input/output while within-budget JSON/WSON values and numeric/Unicode behavior remain compatible and existing limits stay enforced.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Motivation
WSON already bounds nesting (and allows an explicit serialization depth limit), but the inspected public APIs have no total input/output-byte or value-node budget. Shallow large arrays/strings remain outside the depth guard. This is an opt-in resource-control proposal, not a discovered Rust vulnerability.
Starting point: utils/src/wson/mod.rs:20.
Validation
Audited canonical Wave 540728c2eb6cc12f5c69c3fb3fdb96e07ba059a4 (0.0.1-alpha-dev), whose tree matches the local checkout. Validation: Inspected all public WSON parse/write APIs and existing depth guards. Executed compiler probes use the matching checkout-built compiler and std on Linux amd64 (Rust 1.89.0 / LLVM 21.1.8). Source/header or mocked checks are not native execution on another OS.
Scope
Agree caller-selectable byte/node/output budgets that can be used by metadata/diagnostic clients without silently changing existing format or default depth contracts.
Related: #835, #836, #540. These links do not claim those broader or completed scopes are unfinished.
Design discussion required
This issue records a proposal or an unresolved contract; it is not approval to choose new semantics. Please mention @LunaStev to discuss the design before starting implementation.
Completion criteria
- Budgeted APIs reject excess shallow input/output with ordinary structured errors.
- Within-budget JSON/WSON values and exact numeric/Unicode behavior stay compatible.
- Existing depth limits and AST dump-specific limits remain enforced.
- Lenguaje dominante
- Rust
- Estrellas
- 56
- Forks
- 21
- Merge medio
- 23 h 20 min
- PR fusionados (30 d)
- 45
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de wavefnd/Wave
-
Reject unrepresentable POSIX listener descriptors before Unix-domain acceptPosiblemente ocupada @ShahadatTest la tomó hace 7 días. Abiertobug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
wavefnd/Wave#1082 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Preserve expression assembly result types when recording HIR conversionsPosiblemente ocupada @hiyouwhatsapp la tomó hace 2 días. Abiertobug help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
bug help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 53/100
Los mantenedores suelen responder en 1 día
-
Preserve the previous build output when writing its Cargo receipt failsPosiblemente ocupada @hiyouwhatsapp la tomó hace 2 días. Abiertobug build help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 56/100
Los mantenedores suelen responder en 1 día
-
Reconcile obsolete staging assets before verifying a new Nightly generationPosiblemente ocupada @hiyouwhatsapp la tomó hace 3 días. Abiertobug ci help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
Todos los issues de wavefnd/Wave
Issues similares
-
area: cli kind:docs priority: P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
swc-project/swc-ai-issues#164 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
pop-os/cosmic-player#367 ·
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
servo/rust-smallvec#873 ·