This directory contains the source code for rDSN service microkernel.
- src - source code, including the unit tests
- dev.cpp.core.use - reference to the dev/cpp module
dsn.core is the service kernel in rDSN. It defines Service API and Tool API, with which users can develop and plugin various modules, including distributed frameworks, development & operation tools, local runtime, and applications (see examples here). dsn.core takes charge of interconnecting these components, and makes sure they can benefit each other transparently (while developed independently).
Tool API is mainly for this purpose, with wich developers can plugin, for example, new network providers (e.g,. a RDMA network provider with better performance, a virtual network for emulation), toollets for capturing how the requests are processed in the system (e.g., tracer), tools for driving the execution of the whole distributed system (e.g., emulator).
For all cases, developers use dsn::tools::register_component_provider
, dsn::tools::register_component_aspect
, dsn::tools::register_toollet
, dsn::tools::register_tool
to plugin the modules into dsn.core.
Service API provides the basic C APIs for building these components, and dsn.dev.xxx provides language wrappers atop (e.g., dsn.dev.cpp) to ease the development. The frameworks are considered advanced applications, and both are registered into dsn.core through dsn_register_app
. See here for more details.