HelloGitHub
HelloGitHub copied to clipboard
AREG Framework
推荐项目
-
项目地址: https://github.com/aregtech/areg-sdk
-
类别: C++
-
项目标题: Interface-centric ORPC (Object RPC) framework for embedded and desktop applications.
-
项目描述: Traditionally, devices act as connected clients to stream data to the cloud or fog servers for further processing. As data is generated and collected at the edge of the network (mist network), it is logical to redefine the role of connected Things and enable network-accessible services (Public Services) on them, thereby extending the Cloud to the extreme edge. AREG (Automated Real-time Event Grid) is a communication engine to transmit data in IoT fog- and mist-network. It creates a grid of services where devices and software nodes operate like distributed servers and clients using both Client-Server and Publish-Subscribe models.
-
亮点: Edge Computing, Embedded, Distributed, IPC, RPC, Event Driven, Asynchronous Programming, Concurrency, Parallel Computing
-
示例代码:(可选) A Demo repository: https://github.com/aregtech/areg-sdk-demo An example codes:
Easy hierarchical modeling and object initialization for multithreading and multiprocessing. Here is an example for multithreading application initialization (simiar in IPC):
// Define the model and describe components
BEGIN_MODEL("ServiceModel")
BEGIN_REGISTER_THREAD( "Thread1", NECommon::WATCHDOG_IGNORE )
BEGIN_REGISTER_COMPONENT( "ServiceComponent", ServiceComponent )
REGISTER_IMPLEMENT_SERVICE( NEHelloService::ServiceName, NEHelloService::InterfaceVersion )
END_REGISTER_COMPONENT( "ServiceComponent" )
END_REGISTER_THREAD( "Thread1" )
BEGIN_REGISTER_THREAD( "Thread2", NECommon::WATCHDOG_IGNORE )
BEGIN_REGISTER_COMPONENT( "ServiceClient", ClientComponent )
REGISTER_DEPENDENCY( "ServiceComponent" )
END_REGISTER_COMPONENT( "ServiceClient" )
END_REGISTER_THREAD( "Thread2" )
END_MODEL("ServiceModel")
int main( void )
{
constexpr char const model[]{ "ServiceModel" };
Application::initApplication(); // initialize internals
Application::loadModel(model); // load model, initialize components
Application::waitAppQuit(); // wait to receive quit signal
Application::unloadModel(model); // stop and unload components
Application::releaseApplication();// release resources
return 0;
}
-
截图:(可选)gif/png/jpg
-
后续更新计划: Planned major features are
-
Multichannel and multi-protocol communication;
-
Logging Service and log view tool;
-
GUI Tools
-
Internet category Service
-
Bridges for Java, C#, Python, JavaScript.
Really useful.
@Horsediedmanrun, thank you for opinion