Skip to content

Latest commit

 

History

History

core

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

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).

Build tools and local runtime libraries

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.

Build frameworks and applications

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.