swift-nio
hummingbird
swift-nio | hummingbird | |
---|---|---|
12 | 9 | |
7,767 | 752 | |
0.4% | 7.0% | |
9.1 | 9.3 | |
7 days ago | 4 days ago | |
Swift | Swift | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
swift-nio
-
Is it possible/straightforward to have a webserver baked in to an iOS app?
In addition to what others have said, SwiftNIO is a possible low-level web server framework.
-
Swift outside the Apple ecosystem
Also look at: Hummingbird https://github.com/hummingbird-project/hummingbird Smoke https://github.com/amzn/smoke-framework Swift NIO https://github.com/apple/swift-nio
-
Apple Announces Full Swift Rewrite of the Foundation Framework
You could take a look a swift-nio (https://github.com/apple/swift-nio) which is a pretty high-throughput system. swift-nio does this using some reference-counted GC where it simplifies the code and doesn't affect performance. Otherwise, value-types are used which incur no GC overhead (unless they are copy-on-write, and backed by something that requires reference counting).
-
Are there any examples of major or highly complex software written solely or at-least primarily in Swift?
The UI and the Core are mainly written by Swift. The proxy server is powered by Apple Swift-NIO. Some critical parts (deal with low-level system APIs, high performant JSON Parser, de/compression, protobuf, BoringSSL,...) are written by Objective-C and C. For some parts that deal with Pointer, or C library, I continue using Objective-C since it's easier than using a bunch of Unsafe Swift classes (UnsafePointer, UnsafeMutablePointer, UnsafeRawPointer, etc)
- The Val Object Model: Template for a possible future Swift object model
-
Implementing Parts of the Swift Compiler in Swift
> Why should they? That isn't their target audience.
Because they need it?
Apple discontinued macOS server, i bet they use Linux in some of their servers
All their networking related libs are available and tested for Linux [1, 2]
Let's not forget that they package Swift for Linux, and now also for Windows [3]
Swift is crossplatform language (you not wanting to understand it doesn't change this fact), it's not a macOS framework
[1] - https://github.com/apple/swift-nio
[2] - https://github.com/apple/swift-protobuf/blob/main/.github/wo...
[3] - https://forums.swift.org/t/announcing-swift-5-6-2-for-linux-...
-
What is the simplest way to have local http server in iOS app?
I would look at NIO or something that uses it, like https://diamantidis.github.io/2019/10/27/swift-nio-server-in-an-ios-app
-
Update app from external source (maybe?)
i use swiftnio to spin up http servers. lots of documentation online. your app logic will be the same as ios but without swiftui and uikit.
-
Any tutorials you recommend for URLSession?
Depending on what you need, SwiftNIO might do the trick.
-
Is there a reliable swift package for running a tcp connection from an ios app ?
If you want something a little more robust for a low-level TCP connection, you can also use SwiftNIO.
hummingbird
-
An aborted experiment with server Swift
Such a shame. Swift has many beautiful language features.
I give swift a try every once in a while.
Problems of my last attempt:
- The Swift REPL (lldb to be precise) depends on libpython-dev (v3.8). WSL (ubuntu 22.04) comes with 2.7 and 3.10, so the lldb dependency depends on an old python version. The fix was to copy the 3.10 binary to the directory where lldb expects it, and rename it to libpython3.8.so. It seems that it's backwards compatible so it worked on my machine.
- I tried to compile and statically link a hummingbird (web framework, more light weight than vapot, https://github.com/hummingbird-project/hummingbird) hello-world example. I had a liking error. Luckilly someone in the swift forums helped me. The problem was that my package.swift file had the "-static-stdlib" flag only as a swiftSettings. It needed to be also a linkerSetting.
In the end I was able to build my example. But at this point I already spent multiple days debugging problems that are unrelated to my applicationn or the Swift language.
It's a shame because I see its potential. Fixing the (linux/windows) tooling problems would probably only take "some" developers. Apple has near infinite money and could sponsor them if they wanted to., but they gain little by it. Besides them, not many are invested in it.
- What to choose next? My company wants me to learn new stack. iOS Dev with 8 years of exp.
-
Swift outside the Apple ecosystem
Also look at: Hummingbird https://github.com/hummingbird-project/hummingbird Smoke https://github.com/amzn/smoke-framework Swift NIO https://github.com/apple/swift-nio
- Hummingbird, the Swift server framework, hits v1.0
-
What is the backend of apps?
Hummingbird is probably the fastest/lightest backend. You can switch to it after mastering Vapor's Fluent ORM.
-
Suggestions for a back-end service
I'm using Hummingbird hooked up to MongoDB with Vapor Fluent. I declared input/output structs that I share to the client code via a library. All my core business logic sits on the server. I can cache the structs client side on sqlite.
-
vapor and react integration
If you don't need all the features of vapor, you can just use Fluent's ORM and Hummingbird. The documentation and code examples are more up to date.
-
Alchemy - Elegant, batteries included web framework for Swift!
Another Devil's Advocate: Why would I choose it over Hummingbird? https://github.com/hummingbird-project/hummingbird
What are some alternatives?
SwiftSocket - The easy way to use sockets on Apple platforms
Vapor - 💧 A server-side Swift HTTP web framework.
GCDWebServer - The #1 HTTP server for iOS, macOS & tvOS (also includes web based uploader & WebDAV server)
async-http-client - HTTP client library built on SwiftNIO
Zewo - Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines.
alchemy - Modern, batteries included web framework for Swift.
mongodb-vapor - MongoDB + Vapor integration
swift-collections - Commonly used data structures for Swift
Swift-Atem - Blackmagic Design Atem network protocol implementation in swift 5.1 using NIO 2
NoMansCanvas - Jyväskylä University project - A clone of /r/place
smoke-framework - A light-weight server-side service framework written in the Swift programming language.