swift-mongodb
是一个纯 Swift BSON 库和 MongoDB 驱动程序。此包中的所有组成产品都是无 Foundation 的。
TODO: 添加更多代码片段
import NIOCore
import NIOPosix
import MongoDB
let executors:MultiThreadedEventLoopGroup = .init(numberOfThreads: 2)
let bootstrap:Mongo.DriverBootstrap = MongoDB / ["mongo-0", "mongo-1"] /?
{
$0.executors = MultiThreadedEventLoopGroup.singleton
$0.appname = "example app"
}
let configuration:Mongo.ReplicaSetConfiguration = try await bootstrap.withSessionPool
{
try await $0.run(
command: Mongo.ReplicaSetGetConfiguration.init(),
against: .admin)
}
print(configuration)
// ...
此包需要 Swift 6.0 或更高版本。
此库基于 Apache 2.0 许可证。它最初是 MongoKitten 的重写版本,由 Joannis Orlandos 和 Robbert Brandsma 开发。
我已经验证,当为此包编译 Linux 目标时,此包所依赖的所有产品都是无 Foundation 的。请注意,某些包依赖项确实销售导入 Foundation 的产品,但 swift 在产品级别链接二进制文件,并且此库不依赖于任何此类产品。
我的包
理由:此包提供了 TraceableErrors
模块,驱动程序使用该模块来提供丰富的诊断信息。驱动程序不依赖于任何解析器目标。
理由:此包实现了加密算法,驱动程序使用这些算法来完成与 mongod
/mongos
服务器的身份验证。
其他包
理由:此包提供了原子类型,这些类型提高了驱动程序各种并发数据结构的性能。
理由:此包提供了数据结构,这些数据结构提高了驱动程序内部使用的几种算法的运行时复杂度。此外,驱动程序的 swift-nio
依赖项已经依赖于此包的模块之一 (DequeModule
)。
理由:网络。
理由:网络。
注意:此库依赖于
swift-nio-ssl
中的NIOSSL
产品,该产品仅在 Apple 平台上导入 Foundation。NIOSSL
在所有其他平台上都是无 Foundation 的。