Core open source VienDesu! backend
  • Rust 99.6%
  • Nix 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-25 17:21:50 +03:00
auth split data layer into viendesu-protocol crate 2026-05-03 18:24:43 +03:00
captcha split data layer into viendesu-protocol crate 2026-05-03 18:24:43 +03:00
core comments: game comments (list/replies/create/edit/delete/like) 2026-08-25 16:13:54 +03:00
email Initial commit 2026-03-03 14:45:57 +03:00
http games: embed first comments page into get via comments flag 2026-08-25 17:15:58 +03:00
mcp comments: Top is the default sort; games get embeds Top page 2026-08-25 17:21:50 +03:00
protocol comments: Top is the default sort; games get embeds Top page 2026-08-25 17:21:50 +03:00
viendesu mcp: add viendesu-mcp — MCP server as a mountable library 2026-07-12 20:42:43 +03:00
.envrc Initial commit 2026-03-03 14:45:57 +03:00
.gitignore Initial commit 2026-03-03 14:45:57 +03:00
Cargo.toml mcp: add viendesu-mcp — MCP server as a mountable library 2026-07-12 20:42:43 +03:00
flake.lock Initial commit 2026-03-03 14:45:57 +03:00
flake.nix Initial commit 2026-03-03 14:45:57 +03:00
README.md fix Patch field defaults: serde_with::apply must precede #[data] 2026-07-02 19:39:01 +03:00

viendesu core

Gotchas

Patch fields in requests

#[serde_with::apply(Patch => #[serde(default)])] must be written above #[data]. #[data] emits its serde derives above the re-emitted item, so an apply placed below it expands too late to add #[serde(default)] to the fields — omitting a Patch field then fails with missing field instead of meaning Keep. Guarded by protocol/tests/patch_defaults.rs.

TODO: fix in eva itself (make #[data] hoist remaining item attributes above its derives, or reject a late serde_with::apply), then drop this note.