Development Tools

SwiftNIO – event-driven network application framework

SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers and clients.

SwiftNIO is similar to Netty but written for Swift.

This is free and open source software.

It contains the following:

  • 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 EventLoops and Channels or new protocol implementations should only need to depend on NIOCore.
  • NIOPosix. This provides the primary [EventLoopGroup], EventLoop, and Channels 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 and EmbeddedEventLoop, 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 and swift-nio-transport-services for concrete implementations.
  • NIOHTTP1. This provides a low-level HTTP/1.1 protocol implementation.
  • NIOWebSocket. This provides a low-level WebSocket protocol implementation.
  • NIOTestUtils. This provides a number of helpers for testing projects that use SwiftNIO.

Website: apple.github.io/swift-nio
Support: GitHub Code Repository
Developer: Apple Inc.
License: Apache License 2.0

SwiftNIO is written in Swift. Learn Swift with our recommended free books and free tutorials.


Related Software

Swift Web Frameworks
VaporHugely popular server-side Swift HTTP web framework
SwiftNIOAsynchronous event-driven network application framework
KituraWeb framework and web server created for web services written in Swift
HummingbirdLightweight, flexible server framework
PerfectWeb server and toolkit. Development effectively ceased in 2016
ChaqmoqNon-blocking server-side web framework

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Know a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments