SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
SwiftNIO Conceptual Overview
SwiftNIO is fundamentally a low-level tool for building high-performance networking applications in Swift. It particularly targets those use-cases where using a “thread-per-connection” model of concurrency is inefficient or untenable. This is a common limitation when building servers that use a large number of relatively low-utilization connections, such as HTTP servers.
To achieve its goals SwiftNIO extensively uses “non-blocking I/O”: hence the name! Non-blocking I/O differs from the more common blocking I/O model because the application does not wait for data to be sent to or received from the network: instead, SwiftNIO asks for the kernel to notify it when I/O operations can be performed without waiting.
SwiftNIO does not aim to provide high-level solutions like, for example, web frameworks do. Instead, SwiftNIO is focused on providing the low-level building blocks for these higher-level applications. When it comes to building a web application, most users will not want to use SwiftNIO directly: instead, they’ll want to use one of the many great web frameworks available in the Swift ecosystem. Those web frameworks, however, may choose to use SwiftNIO under the covers to provide their networking support.
The following sections will describe the low-level tools that SwiftNIO provides, and provide a quick overview of how to work with them. If you feel comfortable with these concepts, then you can skip right ahead to the other sections of this README.
SwiftNIO Supported Platforms
SwiftNIO aims to support all of the platforms where Swift is supported. Currently, it is developed and tested on macOS and Linux, and is known to support the following operating system versions:
- Ubuntu 18.04+
- macOS 10.9+, iOS 7+; (macOS 10.14+, iOS 12+, tvOS 12+ or watchOS 6+ with swift-nio-transport-services)
Mobile \ Read more \ 27.09
iOS SwiftUI Lists Are Broken And Can’t Be Fixed Swift Combine: Understanding Publisher-Subscriber Pattern in 2 seconds How to Create...
Mobile \ Read more \ 26.09
iOS Compose UI for iOS Aspect Fit Layout Guide Replacing if let in Swift 5.7 Native iOS Game Development w/...
Dotlin – Kotlin to Dart compiler
Dotlin is a Kotlin to Dart compiler. The aim is to integrate Kotlin as a language into the Dart ecosystem,...
Koreography – A light weight Compose Animation library
A lightweight Compose Animation utility library to choreograph low-level Animation API through Kotlin DSL. It does the heavy lifting of dealing...
Mobile \ Read more \ 22.09
iOS Understanding Swift’s Opaque Types Implement Core Spotlight in a SwiftUI App MVVM + POP to deal with complex UI...
Dynamic Islands – A sample of Dynamic Island designs
A sample of Dynamic Island widgets that will help you make better things! Dynamic Islands This repo aims to provide...