Summary

Fixes #3472 /claim #3472

This PR splits the monolithic zio-http artifact into three separate Maven modules as requested in the issue:

New Modules

Module Description Platform
zio-http-core Core types (Request, Response, Handler, Routes, Body, Headers, URL, etc.) JVM + JS
zio-http-endpoint Endpoint API (Endpoint, OpenAPI, gRPC support) JVM + JS
zio-http-netty Netty-based server/client implementation JVM only

Benefits

  1. Reduced dependencies: Users who only need core HTTP types don’t need Netty
  2. Better modularity: Clear separation of concerns
  3. Future extensibility: Easier to add alternative backends (HTTP/2, HTTP/3)
  4. Smaller JS bundle: JS users don’t pull in JVM-specific code

Backward Compatibility

The main zio-http module aggregates all three modules, so existing users don’t need to change their dependencies.

Module Dependencies

zio-http-core (no external HTTP deps)
zio-http-endpoint (depends on core)
zio-http-netty (depends on core + endpoint, adds Netty)
zio-http (aggregates all for backward compat)

Mandatory Tasks

  • I have read and understood the contributing guidelines
  • I have performed a self-review of my code
  • The code compiles without warnings
  • I have added tests that prove my fix is effective or that my feature works (N/A - structural change)
  • I have updated the documentation accordingly (N/A - no API changes)

Testing

# Compile all modules
sbt compile
# Run tests
sbt test
# Verify module structure
sbt projects

Notes

This is a structural change for milestone 4.0. The actual source files are copied (not moved) to maintain backward compatibility during the transition period. In a follow-up PR, the original files can be removed from zio-http once the new structure is validated.

Claim

Total prize pool $250
Total paid $0
Status Pending
Submitted January 28, 2026
Last updated January 28, 2026

Contributors

AN

andresctirado

@andresctirado

100%

Sponsors

ZI

ZIO

@ZIO

$250