diff --git a/lib/async/redis/endpoint.rb b/lib/async/redis/endpoint.rb index 369d2b6..02e7f72 100644 --- a/lib/async/redis/endpoint.rb +++ b/lib/async/redis/endpoint.rb @@ -6,6 +6,7 @@ require "io/endpoint" require "io/endpoint/host_endpoint" require "io/endpoint/ssl_endpoint" +require "io/endpoint/unix_endpoint" require_relative "protocol/resp2" require_relative "protocol/authenticated" @@ -40,6 +41,11 @@ def self.remote(host, port = 6379, **options) # URI::Generic.build automatically handles IPv6 addresses correctly: self.new(URI::Generic.build(scheme: "redis", host: host, port: port), **options) end + + def self.unix(path, **options) + unix_endpoint = ::IO::Endpoint.unix(path, Socket::PF_UNIX) + self.new(URI::Generic.build(scheme: "unix", path:), unix_endpoint, **options) + end SCHEMES = { "redis" => URI::Generic,