hummingbird
Vapor
Our great sponsors
hummingbird | Vapor | |
---|---|---|
9 | 57 | |
744 | 23,775 | |
14.2% | 0.5% | |
9.3 | 8.3 | |
1 day ago | 6 days ago | |
Swift | Swift | |
Apache License 2.0 | MIT License |
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.
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
Vapor
-
Swiftly Chatting: Building Chatbots with Botter
Botter works in tandem with Vapor, which handles the server-side functions of your project. This powerful combination allows you to focus on what matters most - creating an engaging and effective chatbot.
-
Issue with Vapor Server
// swift-tools-version: 5.8 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "MyServer", platforms: [.macOS("12.0")], products: [ // Products define the executables and libraries a package produces, and make them visible to other packages. .executable( name: "MyServer", targets: ["MyServer"]), ], dependencies: [ .package(url: "https://github.com/vapor/vapor.git", .upToNextMajor(from: "4.70.0")), // Dependencies declare other packages that this package depends on. // .package(url: /* package url */, from: "1.0.0"), ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. // Targets can depend on other targets in this package, and on products in packages this package depends on. .executableTarget( name: "MyServer", dependencies: [ .product(name: "Vapor", package: "vapor") ]), .testTarget( name: "MyServerTests", dependencies: ["MyServer"]), ] )
-
Is it possible/straightforward to have a webserver baked in to an iOS app?
Otherwise there's https://github.com/vapor/vapor
- A Look at the Crystal Programming Language for Humans
-
Most effective approach for building a client/server application (MacOS)
The Swift/Vapor project is a relatively easy way to do it.
-
First contract, how much should I charge?
Opening this webpage (https://vapor.codes) cranks my CPU (5800x3d) to 100% instantly. Why?
-
Swift outside the Apple ecosystem
Vapor is the most popular non-Apple-ecosystem Swift project. There have been a few others, but none particularly popular.
-
Idea for small project? (without touching any UI)
Server-side apps (typically via Vapor)
-
Why I selected Elixir and Phoenix as my main stack
My first option other than PHP was using Swift and Vapor. I have made some projects with iOS and Objective-C, maybe I could also learn Swift and create both native iOS apps and backends with the same language.
-
I've just released my new app which allows you to use your iPhone as a webcam when livestreaming
StreamCam is written 100% in Swift, SwiftUI & Combine. The serverside is handled with Vapor.
What are some alternatives?
async-http-client - HTTP client library built on SwiftNIO
Perfect - Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)
alchemy - Modern, batteries included web framework for Swift.
Alamofire - Elegant HTTP Networking in Swift
swift-collections - Commonly used data structures for Swift
Kitura - A Swift web framework and HTTP server.
NoMansCanvas - Jyväskylä University project - A clone of /r/place
swifter - Tiny http server engine written in Swift programming language.
smoke-framework - A light-weight server-side service framework written in the Swift programming language.
GCDWebServer - The #1 HTTP server for iOS, macOS & tvOS (also includes web based uploader & WebDAV server)
APNSwift - 📱HTTP/2 Apple Push Notification Service built with swift - send push notifications to iOS, iPadOS, tvOS, macOS, watchOS, visionOS, and Safari!
Zewo - Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines.