Skip to content

Pluggable http server#76

Merged
RomanEmreis merged 17 commits into
mainfrom
feature/pluggable-http-server
May 16, 2026
Merged

Pluggable http server#76
RomanEmreis merged 17 commits into
mainfrom
feature/pluggable-http-server

Conversation

@RomanEmreis
Copy link
Copy Markdown
Owner

@RomanEmreis RomanEmreis commented May 15, 2026

Summary

This PR decouples neva's Streamable HTTP transport from Volga and introduces a pluggable HTTP engine architecture.

The new HttpEngine abstraction allows any Rust HTTP stack — including axum, hyper, actix-web, or custom transports — to integrate with neva while reusing the existing JSON-RPC pipeline, SSE replay/deduplication, batch execution, and request routing logic.

As part of this refactor:

  • http-server is now engine-agnostic and no longer pulls Volga automatically
  • http-server-volga provides the previous Volga-backed behavior
  • server-full preserves the old out-of-the-box experience for backwards compatibility
  • generic dispatch_* helpers were added to simplify adapter implementations
  • reference adapters for axum, hyper, and actix-web were added under examples/
  • typed auth claims were generalized through the new engine-neutral neva::auth::Claims contract

This change makes Streamable HTTP transport framework-independent while keeping protocol handling centralized inside neva.

⚠ Breaking Changes

  • The http-server feature flag is now framework-agnostic and no longer includes the Volga HTTP stack automatically.

  • Existing applications relying on the previous implicit Volga integration must migrate to either:

    • http-server-volga
    • or server-full

Previous behavior:

features = ["http-server"]

New equivalent behavior:

features = ["http-server-volga"]

or

features = ["server-full"]

Developers using only http-server are now expected to provide their own HTTP engine implementation via the HttpEngine trait.

Type

  • Bug fix
  • Feature
  • Enhancement
  • Performance
  • Documentation
  • Refactor
  • Security
  • Breaking change

Checklist

  • I added/updated tests where it makes sense
  • I updated docs/examples if needed
  • This change is backwards-compatible (or clearly marked as breaking)
  • I ran formatting/lints locally (if applicable)

@RomanEmreis RomanEmreis self-assigned this May 15, 2026
@RomanEmreis RomanEmreis changed the title Feature/pluggable http server [WIP] Pluggable http server May 15, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 26f8d675c9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread neva/src/app/context.rs
@RomanEmreis
Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@RomanEmreis
Copy link
Copy Markdown
Owner Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 671ca2be9c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread neva/src/transport/http/core/handlers.rs Outdated
@RomanEmreis
Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@RomanEmreis
Copy link
Copy Markdown
Owner Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cd6eecb6a9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread neva/src/app/options.rs Outdated
@RomanEmreis
Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@RomanEmreis RomanEmreis changed the title [WIP] Pluggable http server Pluggable http server May 16, 2026
@RomanEmreis RomanEmreis merged commit 49a3ee3 into main May 16, 2026
4 checks passed
@RomanEmreis RomanEmreis deleted the feature/pluggable-http-server branch May 16, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Volga adapter for HTTP abstraction Introduce Streamable HTTP transport abstraction layer

1 participant