Skip to content

Conversation

@aryan-25
Copy link
Collaborator

Motivation:

Both the abstract HTTP server API and the concrete NIO implementation are currently contained in the same module. We should separate the concrete NIO implementation into its own module.

Modifications:

Added a new NIOHTTPServer target and updated import statements. The resulting structure is:

Sources/HTTPServer
├── HTTPRequestContext.swift
├── HTTPResponseSender.swift
├── HTTPServer.swift
├── HTTPServerClosureRequestHandler.swift
├── HTTPServerRequestHandler.swift
└── RequestResponseMiddlewareBox.swift
Sources/NIOHTTPServer
├── HTTPRequestConcludingAsyncReader.swift
├── HTTPResponseConcludingAsyncWriter.swift
├── NIOHTTPServer.swift
├── NIOHTTPServer+ConnectionContext.swift
├── NIOHTTPServer+HTTP1_1.swift
├── NIOHTTPServer+ListeningAddress.swift
├── NIOHTTPServer+SecureUpgrade.swift
├── NIOHTTPServer+SwiftConfiguration.swift
├── NIOHTTPServerConfiguration.swift
├── NIOSSL+X509.swift
└── SocketAddress.swift

Result:

The abstract HTTP server API and the concrete NIO implementation are now split in different modules.

@aryan-25 aryan-25 added the ⚠️ semver/major Breaks existing public API. label Jan 27, 2026
Copy link
Collaborator

@tib tib left a comment

Choose a reason for hiding this comment

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

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚠️ semver/major Breaks existing public API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants