shimohq / ioredis-tree

🌲 A robust tree structure implementation for Redis
MIT License
85 stars 12 forks source link

Switch to pure lua messagepack implementation #10

Open Orfen-0 opened 3 years ago

Orfen-0 commented 3 years ago

Hello, would it be possible to remove the C dependency on the messagepack implementation and use a pure lua implementation such as https://fperrad.frama.io/lua-MessagePack? This would allow this library to work with ioredis-mock which uses Fengari and potentially other Lua vms.

Thank you

luin commented 3 years ago

Hi @Orfen-0, it's indeed a good plus if there's a way to make this library work well with ioredis-mock. However, I'm afraid performance-wise there's a gap between the current C implementation vs the pure Lua one given Redis doesn't support LuaJIT. We don't want to sacrifice performance for ease of testing.

Are there any related performance benchmarks we can refer to?

Orfen-0 commented 3 years ago

Hi @luin, thank you for the response. I haven't been able to make it work myself for our needs yet, and as such I have no performance metrics to share. Unfortunately I have limited experience in Lua so I'm having issues with switching cmsgpack to the lua message pack. However if you think that is something worth investigating, if you could give me some pointers on how I would go about doing this it would be greatly appreciated.

Thank you

luin commented 3 years ago

Unfortunately I have limited experience in Lua.

Me neither 🤣 Especially when it comes to bridges between C & Lua & Node.js so I'm afraid I can't provide much helps for this. However, as an alternative, I think a way to go would be mocking ioredis-tree in your unit tests.

Orfen-0 commented 3 years ago

No worries, understandable, thank you for taking the time to answer my question :)