Skip to main content

Overview

d-sports-backend is a Rust rewrite of the D-Sports API. It ships as a Cargo workspace compiled to Axum binaries (api, dsports-cron, plus migration helpers). This service is not the production API. Live clients call d-sports-api (Next.js). Treat this repo as a parity and cutover project.
  • Default port: 8080
  • Run: infisical login once, then make dev

Status

On the parity branch the priority is legacy API compatibility: a Strangler Fig shim on /api/* so d-sports-engage-native can eventually call this service instead of d-sports-api, while new domain APIs evolve on /v1/*. Without LEGACY__API_BASE_URL, most proxied routes return 501. POST /api/auth/validate can run natively against Clerk + user_id_map.
Do not point production Engage clients at this service. New product routes (binders, Fan Rep, pack uploads, marketplace) land on d-sports-api first. Rust parity for those surfaces is a tracked backlog, not a live contract.

Tech stack

Workspace crates

Getting started

Prerequisites: Rust (rustup), Docker, make, Infisical CLI.
Health check: GET /health returns {"status":"ok"}. Point a local native build at the listen URL only when you are testing the shim.

What this site documents

  • Ecosystem placement and the production-vs-parity warning
  • Crate map and how the /api/* shim relates to d-sports-api
Internal cutover checklists, gap registers, and unpublished ADRs stay in the backend repo. Do not copy them here.

d-sports-api (production)

The live TypeScript API that clients actually call.