mcpField
W
wendy-swift

wendy-swift

github.com/wendylabsinc开发6266 次安装5 周前更新
代码仓库

关于 wendy-swift

面向 WendyOS Linux 边缘开发的 Swift 包生态指南,按领域整理包推荐,并提供 Linux 兼容性检查和包发现方法。

主要功能

  1. 01按领域整理 Swift 包
  2. 02覆盖网络、数据库与 AI
  3. 03列出硬件和观测工具
  4. 04提供 Linux 兼容性检查表
  5. 05指导使用 Swift Package Index

适用场景

  1. 01为 WendyOS 项目筛选 Linux 可用的包
  2. 02检查依赖是否需要 Darwin 或 Xcode
  3. 03查找网络或数据库相关 Swift 包
  4. 04评估包的 Swift 版本和平台支持

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wendylabsinc/claude-skills --skill wendy-swift

安装后在 Claude Code 中输入/wendy-swift确认已加载。

详细介绍

WendyOS 的 Swift 包生态系统

此技能梳理了用于 WendyOS(Linux)边缘开发的 Swift 包生态系统,提供按领域整理的精选推荐,并指导如何通过 Swift Package Index 发现其他包。

精选包目录

Web / HTTP 服务器
包使用场景URLLinux
Hummingbird 2轻量级 HTTP 服务器、路由、中间件https://github.com/hummingbird-project/hummingbird完全支持
Vapor功能齐全的 Web 框架,包含 ORM、身份验证和会话https://github.com/vapor/vapor完全支持
网络 / SwiftNIO
包使用场景URLLinux
SwiftNIO事件驱动的网络框架,支持 TCP/UDPhttps://github.com/apple/swift-nio完全支持
AsyncHTTPClientHTTP/1.1 和 HTTP/2 客户端https://github.com/swift-server/async-http-client完全支持
gRPC Swift 2基于 SwiftNIO 和 Swift 并发构建的 gRPC 客户端和服务端https://github.com/grpc/grpc-swift-2完全支持
Swift OpenAPI Generator根据 OpenAPI 规范生成客户端/服务端代码https://github.com/apple/swift-openapi-generator完全支持
数据库
包使用场景URLLinux
PostgresNIO基于 SwiftNIO 构建的非阻塞 PostgreSQL 客户端https://github.com/vapor/postgres-nio完全支持
GRDB.swiftSQLite 工具包,包含查询构建器、迁移和 WALhttps://github.com/groue/GRDB.swift完全支持
Valkey SwiftValkey/Redis 客户端,支持集群、发布/订阅https://github.com/valkey-io/valkey-swift完全支持
机器学习 / AI 推理
包使用场景URLLinux
llama.cpp带 Swift 绑定的大模型推理https://github.com/ggerganov/llama.cpp完全支持(带 Swift 绑定的 C 库)
whisper.cpp语音转文本推理https://github.com/ggerganov/whisper.cpp完全支持(带 Swift 绑定的 C 库)
MLX Swift面向 Apple Silicon 的机器学习框架https://github.com/ml-explore/mlx-swift仅支持 macOS/Apple Silicon — Linux 上不可用

对于 llama.cpp 和 whisper.cpp,可通过 Swift 的 C 互操作直接使用 C API,或使用社区提供的 Swift 封装包。这些库可在 ARM64/AMD64 Linux 上原生编译。

硬件 / IoT
包使用场景URLLinux
SwiftyGPIO在 Linux SBC 上使用 GPIO、SPI、I2C、PWM、UARThttps://github.com/uraimo/SwiftyGPIO完全支持(仅 Linux)

摄像头/视频访问方式: 在 Linux 上使用 Swift 的 C 互操作,通过 Video4Linux2 (V4L2) 采集摄像头画面。对于 NVIDIA Jetson,可通过 Process 使用 GStreamer 管道,或使用 C 绑定实现硬件加速视频处理。

串口通信: 在 Linux 上使用 Swift 的 C 互操作,通过 termios 访问串口。SwiftyGPIO 也为常见 SBC 提供 UART 支持。

可观测性
包使用场景URLLinux
swift-log结构化日志 APIhttps://github.com/apple/swift-log完全支持
swift-metrics指标 API(计数器、量表、计时器)https://github.com/apple/swift-metrics完全支持
swift-otel为 swift-log、swift-metrics 和分布式追踪提供 OpenTelemetry 后端https://github.com/swift-otel/swift-otel完全支持
swift-distributed-tracing分布式追踪 APIhttps://github.com/apple/swift-distributed-tracing完全支持
序列化 / Codable
Package用途URLLinux
swift-protobuf支持 Codable 的 Protocol Buffershttps://github.com/apple/swift-protobuf完全支持
msgpack-swiftMessagePack 编码器/解码器,符合 Codable 标准https://github.com/fumoboy007/msgpack-swift完全支持
YamsYAML 解析器和生成器https://github.com/jpsim/Yams完全支持
并发 / 工具
Package用途URLLinux
swift-collectionsDeque、OrderedSet、OrderedDictionary 等https://github.com/apple/swift-collections完全支持
swift-algorithms序列/集合算法(分块、组合等)https://github.com/apple/swift-algorithms完全支持
swift-async-algorithms异步序列算法(合并、combineLatest、防抖等)https://github.com/apple/swift-async-algorithms完全支持
swift-argument-parser类型安全的命令行参数解析https://github.com/apple/swift-argument-parser完全支持

Linux 兼容性检查清单

将 Swift Package 添加到 WendyOS 项目之前,请确认:

  1. 没有仅适用于 Darwin 的导入 — 检查是否有 import Darwin、import AppKit、import UIKit、import CoreFoundation(某些 Foundation API 可在 Linux 上使用,但并非全部)
  2. Foundation 兼容性 — 避免使用在 Linux 上尚未实现的 API:FileManager 可以使用,但 NSAppleScript、NSUserDefaults、Process(部分可用)等可能无法使用
  3. 不依赖 Xcode 构建系统 — Package 必须能通过 swift build(SPM)构建,而不需要 Xcode 专属设置
  4. ARM64/AMD64 CI/测试 — 检查该 Package 是否有 Linux CI(使用 ubuntu 运行器或 Swift Docker 镜像的 GitHub Actions)
  5. C 依赖项 — 如果 Package 封装了 C 库,请确保该库可在 ARM64/AMD64 Linux 上使用(例如通过 apt)
  6. Swift 版本 — WendyOS 使用较新的 Swift 工具链;请确认该 Package 支持 Swift 5.9+

在 Swift Package Index 上查找 Package

Swift Package Index 是社区的 Package 搜索引擎。

如何搜索
  1. 前往 https://swiftpackageindex.com 并输入搜索词
  2. 使用 Platform 筛选器选择 Linux,查找兼容 Linux 的 Package
  3. 查看每个 Package 页面上的 Compatibility Matrix — 它会显示经过测试的 Swift 版本和平台
评估 Package 质量
  • 最近活动 — 优先选择过去 6 个月内更新过的 Package
  • Swift 版本兼容性 — 应支持 Swift 5.9 或更高版本
  • 平台徽章 — 查看 Package 页面上的 Linux 徽章
  • 许可证 — 商业用途优先选择 Apache 2.0 或 MIT
  • SSWG 状态 — 由 Swift Server Work Group 孵化的 Package 已经过生产环境验证
搜索 URL 模式

直接搜索:https://swiftpackageindex.com/search?query=YOUR_TERM

最佳实践

  1. 优先使用精选列表 — 上方列出的包已通过审查,兼容 Linux 和 WendyOS
  2. 优先选择 SSWG 包 — Swift Server Work Group 的包(SwiftNIO、swift-log、async-http-client、Hummingbird、PostgresNIO)对 Linux 提供了可靠的支持保障
  3. 留意特定架构的代码 — Swift 包会从源代码编译,因此 ARM64/AMD64 通常都能自动支持,除非包包含 x86 专用汇编、SIMD 内部函数或受架构条件限制的 #if 代码块
  4. 避免仅适用于 Darwin 的依赖项 — 即使是传递依赖项也可能导致 Linux 构建失败;使用 swift package show-dependencies 检查依赖树
  5. 固定到稳定版本 — 在 Package.swift 中使用 .upToNextMajor(from:) 或 .upToNextMinor(from:),而不是基于分支的依赖项
  6. 必要时查阅 Swift Package Index — 如果精选列表未涵盖所需内容,请在 swiftpackageindex.com 上使用 Linux 平台筛选条件搜索
  7. 尽早在 Linux 上测试 — 尽早在 WendyOS 设备或 Linux 虚拟机上构建并运行,以便在问题叠加前发现缺失的 Foundation API 和仅适用于 Darwin 的依赖项

评论

支持 Markdown