Commit Graph

28 Commits

Author SHA1 Message Date
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