Here are the personal GitHub projects I have been working on:

  • maze — cross-platform maze design and solving platform (Rust, C# / .NET MAUI, WebAssembly, React.js)
  • zsv-mcp — MCP server bridging AI assistants and the zsv CSV processing CLI (Go)

maze

Rust C# / .NET MAUI JavaScript / WebAssembly React.js

A cross-platform maze design and solving platform exploring multi-language integration across Rust, WebAssembly, .NET, JavaScript and TypeScript. Ships as a .NET MAUI app for Windows, iOS, and Android, a RESTful web server, a React.js app and a Rust console app.

  • Core maze libraries and solver in Rust with full unit and mock testing
  • Multiple Rust-to-managed-code integration paths: WebAssembly (via wasm-pack, consumed from C# with Wasmtime/Wasmer and from JavaScript), wasm-bindgen (for in-browser support) and a C FFI wrapper crate exposing the maze library as a native iOS library callable from C#
  • RESTful Web API (actix + utoipa) with OpenAPI, Swagger UI, RapiDoc and Redoc
  • Cross-platform .NET MAUI app with a custom InteractiveGrid control
  • React.js Web app supporting maze management with a custom MazeGrid component
  • API documentation generated with cargo doc and DocFX, deployed to GitHub Pages
  • Full CI/CD with GitHub Actions for builds, tests, docs and Pages deployment
Maze MAUI app on Windows — solved maze Maze MAUI app on iOS — solved maze Web server Swagger UI
Maze React.js app — maze list Maze React.js app — solved maze

zsv-mcp

Go

A Model Context Protocol (MCP) server that gives AI assistants programmatic access to zsv, a high-performance CSV processing CLI. Enables Claude, VS Code Copilot, Cursor, and other MCP-compatible tools to query, filter, and transform CSV data as part of an agentic workflow.

  • Implements the Model Context Protocol so AI tools can invoke CSV operations as first-class tool calls
  • Wraps zsv — a standards-compliant, high-performance CSV processor written in C
  • Works with Claude Desktop, VS Code Copilot, Cursor, and any MCP client
  • Written in Go — single static binary, no runtime dependencies