I'm facing a roadblock with Tile38's handling of the HELLO command when using Bun's Redis client - Bun only supports RESP3 and always sends a HELLO 3 command when connections open, which Tile38 currently rejects.
|
if cmd == "hello" { |
|
// Not Supporting RESP3+, returns an ERR instead. |
|
ot := msg.OutputType |
|
if len(msg.Args) > 1 && (msg.Args[1] >= "0" && |
|
msg.Args[1] <= "9") && s.opts.ClientOutput == "json" && |
|
ot == JSON && msg.ConnType == RESP { |
|
// Here we are making sure that we ignoring the '-o json' flag, if |
|
// used, otherwise the connection will fail for some redis clients |
|
// like "github.com/redis/go-redis/v9" are overly strict and expect |
|
// a map type or an error as the result of the HELLO command. |
|
msg.OutputType = RESP |
|
msg.StrictRESP = true |
|
} |
|
err := writeErr("unknown command '" + msg.Args[0] + "'") |
|
msg.OutputType = ot |
|
return err |
|
} |
Since I'm always using OUTPUT json, it would be really helpful if Tile38 supported a way to answer to HELLO 3 without actually performing any changes to the wire protocol (since in both cases responses are a bulk string). Maybe an arg like --withHello3?
To test this out I had Claude write up a patch to handle HELLO + AUTH and it seems to work reliably with JSON output - I haven't tested RESP output yet.
I'm facing a roadblock with Tile38's handling of the
HELLOcommand when using Bun's Redis client - Bun only supports RESP3 and always sends aHELLO 3command when connections open, which Tile38 currently rejects.tile38/internal/server/server.go
Lines 1116 to 1132 in 5b8ce58
Since I'm always using
OUTPUT json, it would be really helpful if Tile38 supported a way to answer toHELLO 3without actually performing any changes to the wire protocol (since in both cases responses are a bulk string). Maybe an arg like--withHello3?To test this out I had Claude write up a patch to handle HELLO + AUTH and it seems to work reliably with JSON output - I haven't tested RESP output yet.