smoke-framework
hummingbird
smoke-framework | hummingbird | |
---|---|---|
4 | 9 | |
1,425 | 761 | |
0.2% | 8.1% | |
6.5 | 9.3 | |
3 months ago | 7 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.
smoke-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
-
I love Swift but I don't use it
Here’s our micro service framework: https://github.com/amzn/smoke-framework
-
Now that Google jettisoned Swift for TensorFlow, is Swift effectively an Apple language?
They released the Smoke framework, which uses NIO for HTTP.
-
Swift for TensorFlow Shuts Down
AWS has a Swift runtime for Lambda [0], and Amazon has an open source server framework for Swift, Smoke [1].
[0] - https://swift.org/blog/aws-lambda-runtime/
[1] - https://github.com/amzn/smoke-framework
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?
Vapor - 💧 A server-side Swift HTTP web framework.
Express - Swift Express is a simple, yet unopinionated web application server written in Swift
async-http-client - HTTP client library built on SwiftNIO
swifter - Tiny http server engine written in Swift programming language.
alchemy - Modern, batteries included web framework for Swift.
Dynamo - High Performance (nearly)100% Swift Web server supporting dynamic content.
swift-collections - Commonly used data structures for Swift
Jobs - A job system for Swift backends.
NoMansCanvas - Jyväskylä University project - A clone of /r/place
SwiftGD - A simple Swift wrapper for libgd
APNSwift - 📱HTTP/2 Apple Push Notification Service built with swift - send push notifications to iOS, iPadOS, tvOS, macOS, watchOS, visionOS, and Safari!