From 92563a8d595a6099f77dc89ca0fe76a2809ec0a6 Mon Sep 17 00:00:00 2001 From: Julien Riou Date: Sun, 29 Dec 2024 08:05:59 +0100 Subject: [PATCH] feat(url): Add valkey and valkeys scheme Inspired by the valkey-py client. https://github.com/valkey-io/valkey-py/blob/v6.0.2/valkey/_parsers/url_parser.py#L40 Signed-off-by: Julien Riou --- url.go | 4 ++-- url_test.go | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/url.go b/url.go index 01161721..9ba61136 100644 --- a/url.go +++ b/url.go @@ -41,11 +41,11 @@ func ParseURL(str string) (opt ClientOption, err error) { return dialer.Dial("unix", s) } opt.InitAddress = []string{strings.TrimSpace(u.Path)} - case "rediss": + case "rediss", "valkeys": opt.TLSConfig = &tls.Config{ MinVersion: tls.VersionTLS12, } - case "redis": + case "redis", "valkey": default: return opt, fmt.Errorf("valkey: invalid URL scheme: %s", u.Scheme) } diff --git a/url_test.go b/url_test.go index db080742..f44797f1 100644 --- a/url_test.go +++ b/url_test.go @@ -15,12 +15,18 @@ func TestParseURL(t *testing.T) { if opt, err := ParseURL("rediss://"); err != nil || opt.TLSConfig == nil { t.Fatalf("unexpected %v %v", opt, err) } + if opt, err := ParseURL("valkeyss://"); err != nil || opt.TLSConfig == nil { + t.Fatalf("unexpected %v %v", opt, err) + } if opt, err := ParseURL("unix://"); err != nil || opt.DialFn == nil { t.Fatalf("unexpected %v %v", opt, err) } if opt, err := ParseURL("redis://"); err != nil || opt.InitAddress[0] != "localhost:6379" { t.Fatalf("unexpected %v %v", opt, err) } + if opt, err := ParseURL("valkey://"); err != nil || opt.InitAddress[0] != "localhost:6379" { + t.Fatalf("unexpected %v %v", opt, err) + } if opt, err := ParseURL("redis://localhost"); err != nil || opt.InitAddress[0] != "localhost:6379" { t.Fatalf("unexpected %v %v", opt, err) }