In no particular order.
- Eliminate
json.Any
, replace with empty interface or sum type. - Document creation of a client and issuing commands in README.md
- Add tests
- Add context
- Add logger
- Use more
&Struct
- Define most structs as
[heap]
- Add support for unix socket connections
- Parse connection strings with net.URL
- Add timeout
- Max idle time
- Max life time
- implement
StickyConnectionPool
- Implement cluster client
- Implement pipeline
- Implement pub/sub
- Implement retry_backoff
- Handle errors properly
- Implement hooks: provide a way to modify or customize the behavior of specific stages in the command execution process. Allow users to inject additional logic before or after a command is executed (such as logging).
- Format
BaseCmd.string_arg
returned string withappend_arg
instead of using string interpolation.
- Add
do
API to issue unsupported commands - Support all commands listed here
get
should return anil
result instead of an error whenkey
does not exist https://docs.keydb.dev/docs/commands/#get. At the moment, Cmdable returns an error with a string'nil'
. It would be better to have a dedicated property for nil results. Create custom error type or return a struct withnil
property.- Gracefully handle errors when issuing commands on a server that requires authentication while not being authenticated.
big number
can be parsed tobig.Integer
- Handle
[]json.Any
andmap[string]json.Any
(related to line 7 of this TODO)