Skip to content

Allow MySQLConnection creation without specifying an event loop #99

@gwynne

Description

@gwynne

[The equivalent of] cherry-picked from vapor/postgres-nio#388:

SwiftNIO has landed EventLoopGroup singletons in 2.58.0. See apple/swift-nio#2471.

We should add an additional MySQLConnection connect method, that internally uses the existing one, but uses the NIO singleton:

extension MySQLConnection {
    static func connect(
        to socketAddress: SocketAddress,
        username: String,
        database: String,
        password: String? = nil,
        tlsConfiguration: TLSConfiguration? = .makeClientConfiguration(),
        serverHostname: String? = nil,
        logger: Logger = .init(label: "codes.vapor.mysql")
    ) -> EventLoopFuture<MySQLConnection> {
        Self.connect(
            to: socketAddress,
            username: username,
            password: password,
            tlsConfiguration: tlsConfiguration,
            serverHostname: serverHostname,
            on: MultiThreadedEventLoopGroup.singleton.any()
        )
    }
}
  • Add API
  • Remove all EventLoopGroup usages in the README

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions