Swift Package Ecosystem for WendyOS
This skill maps the Swift package ecosystem for WendyOS (Linux) edge development. It provides curated recommendations organized by domain and guidance for discovering additional packages via Swift Package Index.
Curated Package Catalog
Web / HTTP Servers
Networking / SwiftNIO
Databases
ML / AI Inference
For llama.cpp and whisper.cpp, use the C API directly via Swift's C interop or use community Swift wrapper packages. These libraries compile natively on ARM64/AMD64 Linux.
Hardware / IoT
Camera/video access patterns: Use Video4Linux2 (V4L2) through Swift's C interop for camera capture on Linux. For NVIDIA Jetson, use GStreamer pipelines via Process or C bindings for hardware-accelerated video.
Serial communication: Use termios via Swift's C interop for serial port access on Linux. SwiftyGPIO also provides UART support for common SBCs.
Observability
Serialization / Codable
Concurrency / Utilities
Linux Compatibility Checklist
Before adding a Swift package to a WendyOS project, verify:
- No Darwin-only imports — Check for
import Darwin, import AppKit, import UIKit, import CoreFoundation (some Foundation APIs are fine on Linux, but not all)
- Foundation compatibility — Avoid APIs that are unimplemented on Linux:
FileManager works, but NSAppleScript, NSUserDefaults, Process (partially available), etc. may not
- No Xcode build system dependencies — The package must build with
swift build (SPM), not require Xcode-specific settings
- ARM64/AMD64 CI/testing — Check if the package has Linux CI (GitHub Actions with
ubuntu runners or Swift Docker images)
- C dependencies — If the package wraps a C library, ensure that library is available on ARM64/AMD64 Linux (e.g., via apt)
- Swift version — WendyOS uses recent Swift toolchains; confirm the package supports Swift 5.9+
Finding Packages on Swift Package Index
Swift Package Index is the community package search engine.
How to search
- Go to https://swiftpackageindex.com and enter your search term
- Use the Platform filter to select Linux to find Linux-compatible packages
- Check the Compatibility Matrix on each package page — it shows which Swift versions and platforms are tested
Evaluating package quality
- Last activity — Prefer packages updated within the last 6 months
- Swift version compatibility — Should support Swift 5.9 or later
- Platform badges — Look for the Linux badge on the package page
- License — Prefer Apache 2.0 or MIT for commercial use
- SSWG status — Packages incubated by the Swift Server Work Group are production-vetted
Search URL pattern
Direct search: https://swiftpackageindex.com/search?query=YOUR_TERM
Best Practices
- Use the curated list first — Packages listed above are vetted for Linux and WendyOS compatibility
- Prefer SSWG packages — Swift Server Work Group packages (SwiftNIO, swift-log, async-http-client, Hummingbird, PostgresNIO) have strong Linux support guarantees
- Watch for architecture-specific code — Swift packages compile from source, so ARM64/AMD64 works automatically unless the package contains x86-specific assembly, SIMD intrinsics, or architecture-gated
#if blocks
- Avoid Darwin-only dependencies — Even transitive dependencies can break Linux builds; use
swift package show-dependencies to audit the tree
- Pin to stable versions — Use
.upToNextMajor(from:) or .upToNextMinor(from:) in Package.swift rather than branch-based dependencies
- Fall back to Swift Package Index — If the curated list doesn't cover your need, search swiftpackageindex.com with the Linux platform filter
- Test on Linux early — Build and run on a WendyOS device or Linux VM early to catch missing Foundation APIs and Darwin-only dependencies before they compound
1---2name: wendy-swift3description: Curated Swift package ecosystem for WendyOS and Linux. Use when developers mention: (1) Swift packages for Linux or ARM64/AMD64, (2) choosing a Swift library, (3) Swift Package Index, (4) swiftpackageindex.com, (5) what Swift library to use, (6) Swift on WendyOS dependencies, (7) edge computing Swift libraries.4---56# Swift Package Ecosystem for WendyOS78This skill maps the Swift package ecosystem for WendyOS (Linux) edge development. It provides curated recommendations organized by domain and guidance for discovering additional packages via Swift Package Index.910## Curated Package Catalog1112### Web / HTTP Servers1314| Package | Use Case | URL | Linux |15|---------|----------|-----|-------------|16| Hummingbird 2 | Lightweight HTTP server, routing, middleware | https://github.com/hummingbird-project/hummingbird | Full support |17| Vapor | Full-featured web framework with ORM, auth, sessions | https://github.com/vapor/vapor | Full support |1819### Networking / SwiftNIO2021| Package | Use Case | URL | Linux |22|---------|----------|-----|-------------|23| SwiftNIO | Event-driven networking framework, TCP/UDP | https://github.com/apple/swift-nio | Full support |24| AsyncHTTPClient | HTTP/1.1 and HTTP/2 client | https://github.com/swift-server/async-http-client | Full support |25| gRPC Swift 2 | gRPC client and server built on SwiftNIO and Swift Concurrency | https://github.com/grpc/grpc-swift-2 | Full support |26| Swift OpenAPI Generator | Generate client/server code from OpenAPI specs | https://github.com/apple/swift-openapi-generator | Full support |2728### Databases2930| Package | Use Case | URL | Linux |31|---------|----------|-----|-------------|32| PostgresNIO | Non-blocking PostgreSQL client built on SwiftNIO | https://github.com/vapor/postgres-nio | Full support |33| GRDB.swift | SQLite toolkit with query builder, migrations, WAL | https://github.com/groue/GRDB.swift | Full support |34| Valkey Swift | Valkey/Redis client with cluster support, pub/sub | https://github.com/valkey-io/valkey-swift | Full support |3536### ML / AI Inference3738| Package | Use Case | URL | Linux |39|---------|----------|-----|-------------|40| llama.cpp | LLM inference with Swift bindings | https://github.com/ggerganov/llama.cpp | Full support (C library with Swift bindings) |41| whisper.cpp | Speech-to-text inference | https://github.com/ggerganov/whisper.cpp | Full support (C library with Swift bindings) |42| MLX Swift | ML framework for Apple Silicon | https://github.com/ml-explore/mlx-swift | macOS/Apple Silicon only — not available on Linux |4344For llama.cpp and whisper.cpp, use the C API directly via Swift's C interop or use community Swift wrapper packages. These libraries compile natively on ARM64/AMD64 Linux.4546### Hardware / IoT4748| Package | Use Case | URL | Linux |49|---------|----------|-----|-------------|50| SwiftyGPIO | GPIO, SPI, I2C, PWM, UART on Linux SBCs | https://github.com/uraimo/SwiftyGPIO | Full support (Linux only) |5152**Camera/video access patterns:** Use Video4Linux2 (V4L2) through Swift's C interop for camera capture on Linux. For NVIDIA Jetson, use GStreamer pipelines via `Process` or C bindings for hardware-accelerated video.5354**Serial communication:** Use termios via Swift's C interop for serial port access on Linux. SwiftyGPIO also provides UART support for common SBCs.5556### Observability5758| Package | Use Case | URL | Linux |59|---------|----------|-----|-------------|60| swift-log | Structured logging API | https://github.com/apple/swift-log | Full support |61| swift-metrics | Metrics API (counters, gauges, timers) | https://github.com/apple/swift-metrics | Full support |62| swift-otel | OpenTelemetry backend for swift-log, swift-metrics, and distributed tracing | https://github.com/swift-otel/swift-otel | Full support |63| swift-distributed-tracing | Distributed tracing API | https://github.com/apple/swift-distributed-tracing | Full support |6465### Serialization / Codable6667| Package | Use Case | URL | Linux |68|---------|----------|-----|-------------|69| swift-protobuf | Protocol Buffers with Codable support | https://github.com/apple/swift-protobuf | Full support |70| msgpack-swift | MessagePack encoder/decoder, Codable-compliant | https://github.com/fumoboy007/msgpack-swift | Full support |71| Yams | YAML parser and emitter | https://github.com/jpsim/Yams | Full support |7273### Concurrency / Utilities7475| Package | Use Case | URL | Linux |76|---------|----------|-----|-------------|77| swift-collections | Deque, OrderedSet, OrderedDictionary, and more | https://github.com/apple/swift-collections | Full support |78| swift-algorithms | Sequence/collection algorithms (chunked, combinations, etc.) | https://github.com/apple/swift-algorithms | Full support |79| swift-async-algorithms | Async sequence algorithms (merge, combineLatest, debounce, etc.) | https://github.com/apple/swift-async-algorithms | Full support |80| swift-argument-parser | Type-safe command-line argument parsing | https://github.com/apple/swift-argument-parser | Full support |8182## Linux Compatibility Checklist8384Before adding a Swift package to a WendyOS project, verify:85861. **No Darwin-only imports** — Check for `import Darwin`, `import AppKit`, `import UIKit`, `import CoreFoundation` (some Foundation APIs are fine on Linux, but not all)872. **Foundation compatibility** — Avoid APIs that are unimplemented on Linux: `FileManager` works, but `NSAppleScript`, `NSUserDefaults`, `Process` (partially available), etc. may not883. **No Xcode build system dependencies** — The package must build with `swift build` (SPM), not require Xcode-specific settings894. **ARM64/AMD64 CI/testing** — Check if the package has Linux CI (GitHub Actions with `ubuntu` runners or Swift Docker images)905. **C dependencies** — If the package wraps a C library, ensure that library is available on ARM64/AMD64 Linux (e.g., via apt)916. **Swift version** — WendyOS uses recent Swift toolchains; confirm the package supports Swift 5.9+9293## Finding Packages on Swift Package Index9495[Swift Package Index](https://swiftpackageindex.com) is the community package search engine.9697### How to search98991. Go to https://swiftpackageindex.com and enter your search term1002. Use the **Platform** filter to select **Linux** to find Linux-compatible packages1013. Check the **Compatibility Matrix** on each package page — it shows which Swift versions and platforms are tested102103### Evaluating package quality104105- **Last activity** — Prefer packages updated within the last 6 months106- **Swift version compatibility** — Should support Swift 5.9 or later107- **Platform badges** — Look for the Linux badge on the package page108- **License** — Prefer Apache 2.0 or MIT for commercial use109- **SSWG status** — Packages incubated by the [Swift Server Work Group](https://www.swift.org/sswg/) are production-vetted110111### Search URL pattern112113Direct search: `https://swiftpackageindex.com/search?query=YOUR_TERM`114115## Best Practices1161171. **Use the curated list first** — Packages listed above are vetted for Linux and WendyOS compatibility1182. **Prefer SSWG packages** — Swift Server Work Group packages (SwiftNIO, swift-log, async-http-client, Hummingbird, PostgresNIO) have strong Linux support guarantees1193. **Watch for architecture-specific code** — Swift packages compile from source, so ARM64/AMD64 works automatically unless the package contains x86-specific assembly, SIMD intrinsics, or architecture-gated `#if` blocks1204. **Avoid Darwin-only dependencies** — Even transitive dependencies can break Linux builds; use `swift package show-dependencies` to audit the tree1215. **Pin to stable versions** — Use `.upToNextMajor(from:)` or `.upToNextMinor(from:)` in Package.swift rather than branch-based dependencies1226. **Fall back to Swift Package Index** — If the curated list doesn't cover your need, search swiftpackageindex.com with the Linux platform filter1237. **Test on Linux early** — Build and run on a WendyOS device or Linux VM early to catch missing Foundation APIs and Darwin-only dependencies before they compound