Releases: aw/picolisp-kv
Releases · aw/picolisp-kv
Fix cmdline --port argument
Add many new commands and bug fixes
New features
- [commands] Add the following Hash COMMANDS:
HDEL, HEXISTS, HGET, HGETALL, HKEYS, HLEN, HMGET, HSET, HSTRLEN, HVALS
- [commands] Add the following List COMMANDS:
LPUSH, LRANGE, LREM, LSET, LTRIM, RPOP, RPOPLPUSH
- [commands] Add the following String COMMANDS:
APPEND, MSET, MGET, STRLEN
- [client] Add
--commands
to view the list of all commands - [client] Add
--encrypt
and--decrypt
options to encrypt/decrypt data using a GPG keypair - [client] Add
--
option to read last argument data from STDIN
Bug fixes
- Ensure listening on a socket will abort after
*KV_abort
seconds - Reading frorm a socket shouldn't return "no data" or "unknown data" if there's no data. It should just print an empty string.
- Errors should throw/raise an error with the message, for the client to parse
- Perform more validations on individual commands, ex: ensuring a Key is a list, etc
- Temporarily disabled integrations tests because they cause false/positives
Misc changes
- Change the way IDENT and AUTH is performed in client and server
- Client doesn't print "OK " anymore for every command
- Simplify much of the kv command processing code
v0.15.1
Library code consolidation
- Consolidate all server library code into one file: libkv.l
- Fix loading of module.l
- Simplify storage location and settings for temporary/lock files
- Explicitly make the child exit when it's finished processing
Minor hotfixes
0.14.2 (2020-07-30)
- Ensure clients actually exit when a 'CLIENT KILL' command is received
0.14.1 (2020-07-30)
- Ensure clients can poll, by listening with (while) instead of (when)
- Update documentation with examples of 'CLIENT' commands
Add persistence and new commands
- Fix bug where client IP is not saved in client list
- Fix bug where client would not disconnect when sent a
kill
command - Add persistence which writes commands in an AOF using WAL method
- Saves and restores a DB from disk
- Replays the AOF after restoring the DB
- Add 'SAVE' and 'BGSAVE' commands
- Add 'CLIENT' command
- Add 'PING' command
- Add 'EXISTS' command
- Add 'GETSET' command
- Add 'CONVERT' command
- Remove 'LOLWUT' command
- Run BGSAVE as a scheduled task
- Add statistics for 'persistence'
- Add option to save the DB in binary format
- Add and fix unit tests
- Add timestamp to output and cleanup error messages etc
- Don't require IDENT to be sent by the client during auth
- Fix problem where messages were lost, abort a client connection that takes too long (60s)
- Major optimization, RPUSH with multiple elements is O(N) instead of O(2^N)
- Other minor fixes and code cleanup