.gitignore | ||
CMakeLists.txt | ||
mc_binding-inl.hpp | ||
mc_binding.cpp | ||
mc_binding.hpp | ||
mc_buffer.cpp | ||
mc_buffer.hpp | ||
mc_client.cpp | ||
mc_client.hpp | ||
mc_common.hpp | ||
mc_functor.hpp | ||
mc_meta.hpp | ||
mc_packet.hpp | ||
mc_prefab-inl.hpp | ||
mc_prefab.cpp | ||
mc_prefab.hpp | ||
mc_protocol-inl.hpp | ||
mc_protocol.cpp | ||
mc_protocol.hpp | ||
mc_serial-inl.hpp | ||
mc_serial.cpp | ||
mc_serial.hpp | ||
mc_server.cpp | ||
mc_server.hpp | ||
mc_socket.cpp | ||
mc_socket.hpp | ||
mc_stream-inl.hpp | ||
mc_stream.cpp | ||
mc_stream.hpp | ||
mc_token.cpp | ||
mc_token.hpp | ||
metacall.hpp | ||
metacall.pro | ||
README.md | ||
testing.cpp |
Many winters while ago I needed to find a simple cross-platform IPC library to use for one of my projects. After a good amount of searching, I was disappointed to discover that although there were lots of libraries for handling IPC, all were very "enterprisey", had a lot of dependencies, and were generally difficult to integrate into my simple console application. Basically, I wanted to use something that was easier than raw sockets/pipes, but conceptually simpler than a gigantic platform-specific monster like WCF. Before long, I came to the realization that there was nothing left to do but write to this library for myself. I called it "Metacall" to reflect the use of C++ template metaprogramming in its implementation, combined with the notion of "calling" functions over the TCP/IP sockets.
Metacall was designed with the following principles in mind:
- Do be cross-platform compatible between Linux and Windows.
- Don't depend on anything outside of CRT, STL and sockets.
- Do prefer simplicity over a complex feature set.
- Do keep boilerplate code requirements to a minimum.
License
MIT