COID is a C++ object-serving networking library, with tool that automatically generates a lightweight communication layer directly from the C++ class declarations. Instantly functioning remote callability for virtually any C++ class can be obtained just by decorating the C++ class with few keywords. The generated client class can be used to access objects on remote machines (almost) as if they were local. Compared to other distributed object infrastructures such as CORBA, COID is lighter and faster and integrates easily directly with sources written in C++.
The coidgen tool processes the specified header files, automatically extracting all the classes and methods that shall be remotely accessible, generating corresponding client class and host dispatcher.
The coid server library manages networked and local connections and provides various services to running objects. The communication layer establishes either a remote connection through the TCP or a direct (vtable) connection between the client and the server if they reside in the same process. Other features include automatic versioning, remote console for debugging and administration of served objects and more. See features and further coid documentation.
The library is extremely easy to use, see example of decorated class example.h and automatically generated files: corresponding client class example_client.h and client implementation example_client.cpp. Server side dispatch implementation example_dispatch.cpp.