apple / swift-nio
git clone https://github.com/apple/swift-nio.git
2.104.0 · 17d ago
🔥 on GitHub Trending today
Event-driven network application framework for high performance protocol servers & clients, non-blocking.
+0
stars, 24h · #58,687
+~0
stars, 7 days · #57,752
+~0
stars, 30 days · #58,347
8.5k
★ total
818
forks · 307 open issues
Star history (as recorded here)
LanguageSwift
LicenseApache-2.0
Created2018-02-06 (8y ago)
Last push3d ago
Watchers188
OwnerOrganization
Seen on GitHub Trending
- 2026-10-23 — #6 daily in swift
- 2026-10-22 — #1 daily in swift
GitHub topics
asynchronous-ioevent-drivenhigh-performancenetworkingnon-blockingnon-blocking-ioswiftswift-serverswift5swiftnio
Links
- GitHub: github.com/apple/swift-nio
- Homepage: https://swiftpackageindex.com/apple/swift-nio/documentation
- Releases · Issues · Hacker News mentions
README excerpt
# SwiftNIO SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. It's like Netty, but written for Swift. ### Repository organization The SwiftNIO project is split across multiple repositories: Repository | NIO 2 --- | --- [https://github.com/apple/swift-nio][repo-nio] SwiftNIO core | `from: "2.0.0"` [https://github.com/apple/swift-nio-ssl][repo-nio-ssl] TLS (SSL) support | `from: "2.0.0"` [https://github.com/apple/swift-nio-http2][repo-nio-http2] HTTP/2 support | `from: "1.0.0"` [https://github.com/apple/swift-nio-extras][repo-nio-extras] useful additions around SwiftNIO | `from: "1.0.0"` [https://github.com/apple/swift-nio-transport-services][repo-nio-transport-services] first-class support for macOS, iOS, tvOS, and watchOS | `from: "1.0.0"` [https://github.com/apple/swift-nio-ssh][repo-nio-ssh] SSH support | `.upToNextMinor(from: "0.2.0")` [https://github.com/apple/swift-nio-quic][repo-nio-quic] QUIC support (in active development) | `branch: "main"` [https://github.com/apple/swift-nio-http3][repo-nio-http3] HTTP/3 support (in active development) | `branch: "main"` Within this repository we have a number of products that provide different functionality. This package contains the following products: - `NIO`. This is an umbrella module exporting `NIOCore`, `NIOEmbedded` and `NIOPosix`. - `NIOCore`. This provides the core abstractions and types for using SwiftNIO (see "Conceptual Overview" for more details). Most NIO extension projects that provide things like new [`EventLoop`s][el] and [`Channel`s][c] or new protocol implementations should only need to depend on `NIOCore`. - `NIOPosix`. This provides the primary [`EventLoopGroup`], [`EventLoop`][el], and [`Channel`s][c] for use on POSIX-based systems. This is our high performance core I/O layer. In general, this should only be imported by projects that plan to do some actual I/O, such as high-level protocol implementations or applications. - `NIOEmbedded`. This provides [`EmbeddedChannel`][ec] and [`EmbeddedEventLoop`][eel], implementations of the `NIOCore` abstractions that provide fine-grained control over their execution. These are most often used for testing, but can also be used to drive protocol implementations in a way that is decoupled from networking altogether. - `NIOConcurrencyHelpers`. This provides a few low-level concurrency primitives that are used by NIO implementations, such as locks and atomics. - `NIOFoundationCompat`. This extends a number of NIO types for better interoperation with Foundation data types. If you are working with Foundation data types such as `Data`, you should import this. - `NIOTLS`. This provides a few common abstraction types for working with multiple TLS implementations. Note that this doesn't provide TLS itself: please investigate [swift-nio-ssl][repo-nio-ssl] and [swift-nio-transport-services][repo-nio-transport-services] for concrete impleme