Split into multiple modules
Currently, the zio-http artifact contains a lot of different parts of zio-http exclusively. They are not separate maven artifacts.
We want to change this, to support future changes/features.
There should be at least these modules that are published into maven.
- core
- endpoint
- netty
Should we have client and server in different modules?
/bounty $250
💎 $250 bounty • ZIO
Steps to solve:
- Start working: Comment
/attempt #3472with your implementation plan - Submit work: Create a pull request including
/claim #3472in the PR body to claim the bounty - Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts
❗ Important guidelines:
- To claim a bounty, you need to provide a short demo video of your changes in your pull request
- If anything is unclear, ask for clarification before starting as this will help avoid potential rework
- Low quality AI PRs will not receive review and will be closed
- Do not ask to be assigned unless you've contributed before
Thank you for contributing to zio/zio-http!
| Attempt | Started (UTC) | Solution | Actions |
|---|---|---|---|
| 🟢 @Pranith124 | Aug 08, 2025, 06:45:12 AM | WIP |
Internal bounty
/bounty $250
Hi @987Nabil, I’d like to take this on and claim the bounty.
Proposing my PR (keeping backward compatibility for users of the existing zio-http artifact):
Publish three new artifacts:-
- dev.zio %% zio-http-core (JS/JVM): core HTTP primitives and abstractions
- dev.zio %% zio-http-endpoint (JS/JVM): declarative endpoints + OpenAPI/GRPC
- dev.zio %% zio-http-netty (JVM): Netty-based client/server drivers + shading
Keep dev.zio %% zio-http as a meta artifact depending on {core, endpoint, netty} so current users can continue to add only zio-http.
Implementation will be:-
- Extracting
zio.http.endpoint/**tozio-http-endpointcrossProject. - Extracting
zio.http.netty/**tozio-http-netty(JVM), and moving shading rules here. - Decouple core from Netty (e.g., move default client/server layers currently importing
Netty*into the Netty module; core exposes abstractions ONLY). - Update
testkit,cli,gen,docs,exampledependencies accordingly. - Add MiMa where applicable and a migration note in the docs.
Also, do you want an additional split for client/server (e.g., zio-http-client cross, zio-http-server JVM), or should we defer that to a follow-up?
Please assign me to the issue; I’ll reference this plan and iterate based on your feedback.
@sangwaboi I tried this and it is not possible. This will be part of the next major release and is no bounty open to the public
Thank you for the reply, @987Nabil. I totally understand. I thought I’d give it a try once since I’ve been studying the codebase for a while . I’d still love to contribute, regardless of whether there's a bounty.
There is no work for you here. This will need to be part of a bigger effort and needs some insight and decisions power you simply do not have. This is a a task that only maintainers can do. Sorry