Vapor
hummingbird
Vapor | hummingbird | |
---|---|---|
61 | 9 | |
24,636 | 1,235 | |
0.4% | 4.4% | |
8.2 | 9.4 | |
3 days ago | 6 days ago | |
Swift | Swift | |
MIT License | 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.
Vapor
- Swift, but on a Server
-
Swift 6
Do you mean from first-principles, or letting someone else do the work and use a framework? The latter has been around for years, extremely easy: https://vapor.codes
-
Show HN: Resend/Loops alternative with back end written using Swift
IndiePitcher (https://indiepitcher.com) is email solution for tech companies allowing to send transactional/marketing emails, and manage email list subscriptions (like stripe subscription management portal).
An interesting fact for this community might be that the backend is a monolith written using Swift programming language (that one from Apple to make iPhone apps) using Vapor framework (https://vapor.codes), so I thought that I'd share it here.
-
Swift Static Linux SDK
I haven't used it yet, but I've heard really good things about Vapor as far as server side Swift goes...
https://vapor.codes
-
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?
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?
Perfect - Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)
APNSwift - 📱HTTP/2 Apple Push Notification Service built with swift - send push notifications to iOS, iPadOS, tvOS, macOS, watchOS, visionOS, and Safari!
Alamofire - Elegant HTTP Networking in Swift
alchemy - Modern, batteries included web framework for Swift.
Kitura - A Swift web framework and HTTP server.
async-http-client - HTTP client library built on SwiftNIO
swifter - Tiny http server engine written in Swift programming language.
swift-win32 - A Windows application framework for Swift
GCDWebServer - The #1 HTTP server for iOS, macOS & tvOS (also includes web based uploader & WebDAV server)
NoMansCanvas - Jyväskylä University project - A clone of /r/place
Zewo - Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines.
Alchemy