swift-distributed-actors
swift-distributed-tracing
swift-distributed-actors | swift-distributed-tracing | |
---|---|---|
2 | 3 | |
568 | 196 | |
0.9% | 3.1% | |
5.2 | 5.7 | |
29 days ago | 8 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-distributed-actors
-
Distributed Actors in Swift
Pretty exited for this. Looks like a good alternative to Erlang or Akka with the native performance / low resource utilization of Swift. Erlang lacks strong typing and Akka is DSL-hell.
Looks like they've open-sourced a transport [0] and are adding support for distributed tracing as well [1, 2], which is a huge aid for system operators and debugging.
[0] https://github.com/apple/swift-distributed-actors/
-
Catching Native Apps
Apple is in the business of selling hardware, and developing a cross-platform toolkit would have to potential to cannibalize that. I think Swift's weak footing in other OSs is also owed to that fact.
Apple's best bet is to create an ecosystem of hardware and software that is self-sustaining and moated. I'd argue that they are successful in that, but all those web platforms have significantly weakened the moat. You don't need apps like Sketch anymore (infact I consider Figma way superior), and you don't need most of their bundled native apps anymore (their are great replacements that are either native or web based).
So how will they strengthen the moat? Certainly not by further weakening it by sharing code with other platforms. They seem to be ready to accept that distributed systems won't go away and are obviously actively buying into that space (https://github.com/apple/swift-distributed-actors/). But, UI-wise, I'm only seeing renewed determination to push native apps: https://www.imore.com/apple-rebuilding-apple-music-native-ap.... And I think it makes sense for their bread-and-butter hardware business.
swift-distributed-tracing
-
Swift outside the Apple ecosystem?
Also, Apple seems to be putting a ton of work into the Swift-on-server ecosystem. They've released packages for things like tracing, metrics, service discovery, logging, etc. And most of those are basically shared interfaces, and then Apple (or the community) will write backend implementations, like one for statsd which implements the stuff from swift-metrics.
- Distributed Actors in Swift
-
Swift Playgrounds 4
Apple is investing a lot in it, but Swift is much younger than Rust (especially as an open source project). There is a working group that meets every few weeks to shepherd the various projects. Most of the recent activity has been (AFAICT) about orchestration. Well, that and transitioning projects to use async/await and structured concurrency. Here's some recent activity in the Swift on server space:
- the proposal for distributed actors is currently in-review (https://github.com/apple/swift-evolution/blob/main/proposals...)
- a metrics API for backends like Graphite, Prometheus, etc. (https://github.com/apple/swift-metrics)
- HTTP/2 support for SwiftNIO (https://github.com/apple/swift-nio-http2)
- a new service discovery API (https://github.com/apple/swift-service-discovery)
- a new distributed tracing API (https://github.com/apple/swift-distributed-tracing)
- a Linux implementation of Apple's CryptoKit API on top of BoringSSL (https://github.com/apple/swift-crypto)
I'm not pretending that it's taking the server-side world by storm, but there is a fair amount of ongoing activity Personally, I'm using it for a couple personal projects and it's been solid, but I'm already a macOS developer, so it wasn't a big stretch for me to reach for it.
What are some alternatives?
puppeteer - Node.js API for Chrome
swift-metrics - Metrics API for Swift
zfs - OpenZFS on OS X
swift-nio-http2 - HTTP/2 support for SwiftNIO
swift-statsd-client - metrics backend for swift-metrics that uses the statsd protocol
swift-service-discovery - A service discovery API for Swift.
gamebuilder - Game Builder is an application that allows users to create games with little or no coding experience.
jamf-smartcard-tool-CLI - command line cross platform (macos, windows, linux) tool to interact with the jamf api