Skip to content

Changelog

  • Native multipart/form-data parser (MultipartParser) — pure Scala.js, no npm dependencies
  • BodyLimitMiddleware for configurable per-route body size limits
  • Configurable body size limit and read timeout on Request
  • Node.js fs facade: writeFile, mkdir, readdir, rm, rename, copyFile, access
  • ReadableStream.destroy method in Node.js stream facade
  • 57 new tests (151 total): MultipartParser (30), ResponseDSL (19), Router subrouter edge cases (3), RateLimiter enforcement (2), JWT edge cases (3)
  • Router: unsafe asInstanceOf[StaticSegment] cast replaced with pattern match
  • StaticMiddleware: missing parentheses on getTime() call (Scala 3.8.3 warning)
  • FileUploadMiddleware now uses native MultipartParser instead of busboy npm package
  • Updated Scala to 3.8.3, Scala.js to 1.21.0, zio-json to 0.9.0, sbt to 1.12.9
  • busboy npm dependency — Apion now has zero external npm dependencies

  • BodyLimitMiddleware for configurable per-route body size limits
  • Configurable body size limit and read timeout on Request
  • Node.js fs facade extensions
  • 27 new tests (121 total)
  • Router: unsafe cast replaced with pattern match
  • StaticMiddleware: missing parentheses on getTime() call
  • Updated Scala to 3.8.3, Scala.js to 1.21.0, zio-json to 0.9.0, sbt to 1.12.9

  • Updated Scala to 3.8.1, sbt to 1.12.1, Scala.js to 1.20.2
  • Modernized Maven Central publishing to sonatypePublishToBundle
  • Replaced deprecated -Xfatal-warnings with -Werror

  • Range header support in static file middleware
  • Error handler support
  • Error handler integration tests
  • Implicit ExecutionContext in package object
  • Handling of errors not caught by an error handler
  • Handling of internally generated errors

  • Improved memory usage and responsiveness for large file downloads

  • Request tests
  • Rate limiter middleware
  • Proper streaming response handling
  • Request connection information methods
  • Content-Type header handling
  • Request stream processing
  • Static file reader uses streaming reader

  • Streaming request body parsing
  • Body parser middleware (replaced by streaming)

  • Middleware chaining in route handlers
  • Compression middleware integration tests
  • Response header casing
  • Response body handling
  • Logging middleware timestamp
  • Content-length for 404 JSON errors

  • Security and CORS middleware integration tests
  • Cookie middleware
  • Multi-valued response headers
  • Authentication middleware integration tests
  • Request finalizer handling
  • Case-insensitive header handling

Initial release.

  • Express-style chainable API with type safety
  • Request/response handling with immutable types
  • JWT-based authentication middleware
  • Body parsing for JSON and form data
  • Static file serving
  • Response compression (Brotli, Gzip, Deflate)
  • CORS and security headers middleware
  • Path parameter support
  • Nested routing
  • Error handling system
  • Logging middleware
  • Testing utilities