Skip to content

Releases: aw/picolisp-kv

Fix cmdline --port argument

16 Nov 04:50
@aw aw
770ff51
Compare
Choose a tag to compare

Bug fixes

  • Ensure --port value is handled as a number not a string by client.l

Add many new commands and bug fixes

17 Aug 07:20
@aw aw
aeb2d8a
Compare
Choose a tag to compare

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

31 Jul 13:46
@aw aw
f27ca46
Compare
Choose a tag to compare
  • Move the global list of all keys to '%stats%/keys' so it can't be deleted or modified
  • Allow 'EXISTS' command on all keys including keys prefixed with '%stats%/'

Library code consolidation

31 Jul 13:12
@aw aw
6e293f1
Compare
Choose a tag to compare
  • 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

30 Jul 11:50
@aw aw
c79a6bd
Compare
Choose a tag to compare

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

30 Jul 11:13
@aw aw
0ac07dd
Compare
Choose a tag to compare
  • 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