Kelvin Mwinuka
d08231f82f
Implemented unit test for PUBSUB NUMSUB command handler
2024-03-20 13:27:58 +08:00
Kelvin Mwinuka
852f23b36e
Removed context parameter and implemented locking of RWMutex in NumPat and NumSub receiver functions in PubSub module
2024-03-20 05:00:15 +08:00
Kelvin Mwinuka
f41e2f6ff3
Added RWMutexes in PubSub Subscribe, Unsubscribe, and Channels receiver functions. Implemented test for PUBSUB CHANNELS command handler
2024-03-20 04:58:03 +08:00
Kelvin Mwinuka
28f659033e
Removed discord label from README.md. Updated SUBSCRIBE command handler to send psubscribe event to connection when subscribing to a pattern.
2024-03-20 00:18:38 +08:00
Kelvin Mwinuka
59a03aec2c
Added test for PUBLISH command handler
2024-03-18 14:05:49 +08:00
Kelvin Mwinuka
dbfa398543
Implemented tests for SUBSCRIBE, PSUBSCRIBE, UNSUBSCRIBE, and PUNSUBSCRIBE command handlers
2024-03-17 02:41:49 +08:00
Kelvin Clement Mwinuka
e569bf6837
Added config flags max-memory and eviction-policy to manage memory usage. Created ParseMemory utility function to parse max-memory value into bytes. Created LFU cache to be used with heap data structure for managing LFU cache.
2024-03-01 16:25:04 +08:00
Kelvin Clement Mwinuka
e18257e600
Added PUBSUB commands and made pubsub module more compatible with redis-cli client
2024-02-28 10:14:46 +08:00
Kelvin Clement Mwinuka
369aa3ba89
Made hash module more compatible with hash redis-client
2024-02-27 19:46:23 +08:00
Kelvin Clement Mwinuka
fc8d301525
Removed Consumer Group in PubSub module and made the module more compatible with redis client
2024-02-27 17:45:20 +08:00
Kelvin Clement Mwinuka
6cb38ee51d
Removed Plugin struct and it's receiver functions in all the modules
2024-02-14 21:38:57 +08:00
Kelvin Clement Mwinuka
af22c1686f
Renamed NewPlugin function to a Command that returns []utils.Command directly
2024-02-14 12:22:38 +08:00
Kelvin Clement Mwinuka
1c00706f88
Updated module name to echovault
2024-01-24 22:32:05 +08:00
Kelvin Clement Mwinuka
ce14f59f41
Replaced all instances of utils.Contains with slices.Contains.
...
Deleted Contains function from the utils.go file.
Replaced bufio.ReadWriter with io.Reader and io.Writer respectively.
Updated PubSub module to remove posibility of not passing a channel name when subscribing or publishing.
2024-01-23 23:38:07 +08:00
Kelvin Clement Mwinuka
78aa9a82c6
Renamed memebrlist_layer directory to memberlist.
...
Renamed raft_layer directory to raft.
Created snapshot and aof packages to handle snapshots in standalone mode and aof package to handle append-only function.
Created server package that will contain the server logic.
2024-01-21 15:03:36 +08:00
Kelvin Clement Mwinuka
c82560294d
Refactored memberlist and raft layers into their own packages
2024-01-10 02:37:48 +03:00
Kelvin Clement Mwinuka
505a5bc966
Introduces HandlerFunc into Command and SubCommand types
2024-01-03 22:41:04 +03:00
Kelvin Clement Mwinuka
501a435157
Removed unused Plugin declarations
2023-12-16 23:38:13 +08:00
Kelvin Clement Mwinuka
1c8b617541
Channel publish command returns OK instead of PUBLISH_OK
2023-12-16 23:26:21 +08:00
Kelvin Clement Mwinuka
77b21b4522
Implemented handler for ACL LIST command
2023-12-16 03:27:16 +08:00
Kelvin Clement Mwinuka
e6a107f78b
Moved OK and WRON_ARGS_RESPONSE to utils const file
2023-12-15 20:04:02 +08:00
Kelvin Clement Mwinuka
5db0164335
Removed printing of pubsub in pubsub/commands.go module
2023-12-15 01:24:10 +08:00
Kelvin Clement Mwinuka
26dfe5d1b8
Added connection category to subscribe and unsubscribe commands
2023-12-15 01:15:54 +08:00
Kelvin Clement Mwinuka
acb7cd6973
Added command categories in utils/types.go and in each of the current modules and commands
2023-12-15 01:03:39 +08:00
Kelvin Clement Mwinuka
42c145ef3c
Added KeyExtractionFunc for all commands and sub commands to extract keys for ACL authorization.
...
Deleted genpass command.
2023-12-13 22:09:14 +08:00
Kelvin Clement Mwinuka
5f39a64a8d
Refactored command modules to always accept connection parameter in order to streamline command processing.
...
Updated server command list and enabled subcommands and granular cluster sync for individual subcommands.
Renamed "set" packate to "etc" as "set" will be used for the set data type in the future.
2023-12-13 19:34:52 +08:00
Kelvin Clement Mwinuka
e7c7cf1553
Deleted plugin folder.
...
Removed nested plugin in command list for modules.
Moved PubSub feature from plugin folder to modules folder.
2023-12-13 01:56:55 +08:00
Kelvin Clement Mwinuka
f82508e964
Created new pubsub module. Refactored LoadPlugins method to LoadModules
2023-12-13 00:49:20 +08:00