feat(libmsg): add pymsg C++ library with AsyncQueue, MsgServer, and JSON RPC layer

- Add libmsg module: pymsg protocol implementation (4-byte BE length prefix + UTF-8)
- Add AsyncQueue<T>: generic async batch queue with backpressure (aligned with Python AsyncRpcQueue)
- Add MsgServer: select-based multi-client TCP server with optional thread pool
- Add RpcClient/RpcServer: JSON RPC convention layer with automatic route injection
- Refactor gateway/LogC.hpp to use AsyncQueue for async batch log delivery
- Update gateway/DbC.hpp to add call_msg() using pymsg TCP protocol
- Remove duplicated gateway/inc/Msg.hpp (now provided by libmsg)
- Update gateway/Makefile and _inst.sh build order

Fixes included:
- pmsg_send size check uses kMaxMsgSize (64MiB) instead of 4GiB
- MsgClient._running uses std::atomic<bool> for thread safety
- Deadline-based recv timeout to prevent Slowloris (header+payload shared deadline)
This commit is contained in:
qing committed 2026-08-06 23:48:06 +08:00
1 parent 7ff73b7d07
commit 1d44e0dcb8
17 files changed
+2483 -482

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
#include "us/Msg_Basic.hpp"
namespace pmc {
namespace net {
const char* Msg_Basic::version() {
return "libus_msg 0.0.1";
}
} // namespace net
} // namespace pmc