-
Notifications
You must be signed in to change notification settings - Fork 23.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[META] Module API V1 #8157
Comments
@yossigo Please mark as done above:
|
Is there anyone working on the missing list and set functions? If not then we'd like to take a look at it and contribute. |
I started working on the list functions, but it was unclear what they (Oran and Yossi) want from the API, so it was paused. I think agreeing on the API is more difficult than the implementation. If you @hwware start working on set and list functions, I will help review and discuss it. |
Module API V1
This is an attempt to scope out all missing or broken Redis Module API capabilities, and create an exahustive list that defines a stable V1 interface.
The Module API was in continuous state of development since Redis 4. Although it maintains ABI backwards compatibility, this does make things more difficult for module developers to mange.
General
Better documentation is desparately needed. Things that come in mind:
Big Topics
Native Key Access
RM_HashDel
(usingRM_HashSet
withREDISMODULE_HASH_DELETE
).RM_HashLen
(usingRM_ValueLength
).RM_ListGet
RM_ListInsert
RM_ListLen
(usingRM_ValueLength
).RM_ListRemove
RM_ListSet
RM_SetAdd
RM_SetCard
RM_SetIsMember
RM_SetRemove
Minor Improvements / Fixes
RM_HashSet
return code is ambigious (Redis module RM_HashSet() return confusing 0 for hash creation #6914)RM_BlockClient
when called in a context that does not allow that (Module functions not stopped after trying to block client from MULTI #5567)MULTI/EXEC
handling (Unexpected module command behaviour in multi #3635)RM_KeyExists
function (A few things that came up #6860, No. 11)Trivial
REDISMODULE_POSTPONED_ARRAY_LEN
is used (Issue withREDISMODULE_POSTPONED_ARRAY_LEN
on module API #6444)SendClusterMessage
crashes thread safe context (Using 'RedisModule_SendClusterMessage' with ThreadSafeCtx cause redis to crash #5500)MODULE UNLOAD
and a module command inMULTI/EXEC
will crash (CRITICAL BUG: redis crashes inside MULTI/EXEC if modules unloaded #4826)MODULE LIST
(Module info path #4413)RM_StringTruncate()
with a zero length which currently does nothing, or document the otherwise unexpected behavior (modules RM_StringTruncate with newlen == 0 #3717)RM_WrongArity()
crash on thread safe context ([MODULES] Calling RedisModule_WrongArity from a thread-safe context crashes redis #4756)NOTIFY_MODULE
(Need to better understand the use case) (add NOTIFY_MODULE flag #6963)RM_BlockClient
misuse leading to crashes (Modules: handle NULL pointer in BlockClient #4366)RM_Call
by recycling a single client (Optimize RM_Call by recycling the client #4623)aof_rewrite
callback if preamble is disabled, or disable preamble if such modules are loadedModule API V2 and beyond
Big things beyond the current Module API V1 effort.
The text was updated successfully, but these errors were encountered: