On 2024/7/8 02:30, Pepijn Noltes wrote:
Incorporating libuv into Apache Celix could offer several benefits, including:
- Use libuv single threaded event loop for the Apache Celix Event Thread
- Threading and thread synchronization abstraction
- Signal handling abstract
- Socket abstraction
- File handling abstraction (OS abstraction)
Adopting libuv might not only reduce our codebase but also improve OS
abstraction, making Windows support, in the future, more feasible.
Moreover, many high profile open source projects, e.g.
libcurl/libwebsockets, have good integration with libuv.
As a bonus, both Zhenbao Xu and I are already familiar with libuv, which
is used extensively in our day job.
I think it is good to discuss whether integrating libuv is something
worth considering.
If so, we should determine the appropriate timeline for integration
and decide if it should replace existing abstractions like
celix_threads.h.
+1 for a try to replace celix_threads.h
However, it's worth noting that libuv does not provide abstractions
for open_memstream or fmemopen.
In my opinion, if we proceed with using libuv, it would be ideal to
include it in the Apache Celix 3.0.0 release. Otherwise, we might need
to introduce two major updates in a short period, which is not ideal.
But the downside is that this could postpone an Apache Celix 3.0.0 release.
+1 for including libuv in 3.0.0 release.
Any thoughts, comments or questions are welcome.
Best regards,
Pepijn
--
Peng Zheng