swift-url
hummingbird
Our great sponsors
swift-url | hummingbird | |
---|---|---|
7 | 9 | |
329 | 744 | |
- | 14.2% | |
5.4 | 9.3 | |
2 months ago | 6 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-url
- WebURL 0.4 released! Now with IDNA support!
- WebURL 0.3.1 released! Now with URLSession support!
- Link in comments doesn’t work in Apollo
- WebURL 0.3.0 released!
-
WebURL 0.2.0 released! A new URL type for Swift
I'd recommend reading the guide, or at least the readme.
-
Working with IP address and CIDR
The WebURL library I've been working on (https://github.com/karwa/swift-url) includes pure-Swift IP address types ([IPv4Address](https://karwa.github.io/swift-url/IPv4Address/), [IPv6Address](https://karwa.github.io/swift-url/IPv6Address/)). The library has no dependencies other than the Swift standard library, so you shouldn't run in to any issues with `@available` like you do when using Network.framework's types.
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?
SwiftIPAddress - A tiny, well-tested Swift library for handling IP Addresses.
Vapor - 💧 A server-side Swift HTTP web framework.
async-http-client - HTTP client library built on SwiftNIO
alchemy - Modern, batteries included web framework for Swift.
swift-collections - Commonly used data structures for Swift
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.
APNSwift - 📱HTTP/2 Apple Push Notification Service built with swift - send push notifications to iOS, iPadOS, tvOS, macOS, watchOS, visionOS, and Safari!
Alchemy
pyvibe - Generate styled HTML pages from Python
Kitura - A Swift web framework and HTTP server.
Online Swift Playground - Online Swift Playground