No description
  • Rust 94.7%
  • CSS 4.5%
  • Nix 0.7%
Find a file
Collin Diekvoss 6f9c18e29c
Unify dioxus_music specs into music.oas3.json and implement the full surface
Merge the Jellyfin and OpenSubsonic documents plus the curated ops
(AuthenticateByName with 401, serveSpec) into one music.oas3.json and
generate a single module from it (84 selected ops + curated auth).

- Prefix colliding operationIds (GetJellyfin*, getOpenSubsonic*) and
  split the one colliding enum (MediaType stays Subsonic's,
  JellyfinMediaType is Jellyfin's); drop the merge-artifact
  Child.media_type, keeping canonical mediaType
- Implement all 25 per-tag traits in routes/ (jellyfin_* for Jellyfin
  tags, subsonic_* for OpenSubsonic tags, codegen.rs for curated ops)
- Single 25-trait build_router; regenerate music.http (85 requests);
  allowlist generated-module lints, fix hand-written clippy nits,
  keep single-line spec descriptions (multi-line text becomes doctests)
- Document the merge rules in openapi-to-rust.toml and the README
2026-10-03 15:11:09 -05:00
dioxus_music Unify dioxus_music specs into music.oas3.json and implement the full surface 2026-10-03 15:11:09 -05:00
discord_bot Unify dioxus_music specs into music.oas3.json and implement the full surface 2026-10-03 15:11:09 -05:00
httpui Add iOS cross-compilation helpers to flake 2026-04-17 10:25:35 -05:00
kinetic_ui Add iOS cross-compilation helpers to flake 2026-04-17 10:25:35 -05:00
portfolio Port sample OpenAPI-codegen patterns into dioxus_music and discord_bot 2026-10-01 08:31:23 -05:00
.envrc Unify dioxus_music specs into music.oas3.json and implement the full surface 2026-10-03 15:11:09 -05:00
.gitignore theme 2026-03-23 11:41:43 -05:00
AGENTS.md Port sample OpenAPI-codegen patterns into dioxus_music and discord_bot 2026-10-01 08:31:23 -05:00
Cargo.lock Unify dioxus_music specs into music.oas3.json and implement the full surface 2026-10-03 15:11:09 -05:00
Cargo.toml Unify dioxus_music specs into music.oas3.json and implement the full surface 2026-10-03 15:11:09 -05:00
CLAUDE.md Port sample OpenAPI-codegen patterns into dioxus_music and discord_bot 2026-10-01 08:31:23 -05:00
DESIGN.md Feat/dioxus music kinetic UI (#3) 2026-03-21 22:47:15 -05:00
flake.lock Unify dioxus_music specs into music.oas3.json and implement the full surface 2026-10-03 15:11:09 -05:00
flake.nix Unify dioxus_music specs into music.oas3.json and implement the full surface 2026-10-03 15:11:09 -05:00
LICENSE initial commit 2026-02-18 17:32:13 -06:00
README.md Port sample OpenAPI-codegen patterns into dioxus_music and discord_bot 2026-10-01 08:31:23 -05:00
rust-toolchain.toml initial commit 2026-02-18 17:32:13 -06:00
TODO.md Port sample OpenAPI-codegen patterns into dioxus_music and discord_bot 2026-10-01 08:31:23 -05:00

dx_monorepo

Monorepo of my various Dioxus projects.

Projects

Package Platform Description
discord_bot web (fullstack) Discord bot + games monolith (game manager merged in: /games, /api/terraria/*, /api/minecraft/*, /api/authorize)
httpui desktop HTTP client (Postman-like)
dioxus_music_web web (fullstack) Music player web app
dioxus_music_desktop desktop Music player desktop app
dioxus_music_mobile android/ios Music player mobile app

Prerequisites

This project uses a Nix flake for development dependencies. Enter the devshell:

nix develop

The devshell provides: Rust toolchain, Dioxus CLI (dx), Android SDK/NDK, wasm-bindgen, diesel CLI, and other build dependencies.

Without Nix

Install the following manually:

  • Rust (see rust-toolchain.toml for the required toolchain)
  • Dioxus CLI: curl -sSL http://dioxus.dev/install.sh | sh
  • For Android: Android SDK + NDK, set ANDROID_HOME and ANDROID_NDK_HOME
  • For database projects: diesel_cli with postgres support, a running PostgreSQL instance

iOS Builds (macOS only)

iOS builds require Xcode installed on the host machine. The Nix devshell handles SDK discovery automatically, but you must complete these one-time setup steps:

  1. Install Xcode from the Mac App Store or developer.apple.com

  2. Accept the Xcode license:

    sudo xcodebuild -license
    
  3. Verify iOS SDKs are available (from within the devshell):

    xcrun --show-sdk-path --sdk iphonesimulator
    xcrun --show-sdk-path --sdk iphoneos
    

The devshell unsets SDKROOT and sets DEVELOPER_DIR to Xcode.app so that xcrun can discover the iOS SDKs even if xcode-select points at CommandLineTools.

Serving / Building

# Serve with hot-reload (from repo root)
dx serve --package <package_name> --platform <platform>

# Build
dx build --package <package_name> --platform <platform>

Examples:

# Web
dx serve --package dioxus_music_web --platform web

# Desktop
dx serve --package dioxus_music_desktop --platform desktop
dx serve --package httpui --platform desktop

# Mobile
dx build --package dioxus_music_mobile --platform android
dx build --package dioxus_music_mobile --platform ios