Go to file
2021-12-14 18:37:11 -08:00
.gitignore Adding CMake configuration 2015-04-13 18:44:23 +09:00
CMakeLists.txt Adding CMake configuration 2015-04-13 18:44:23 +09:00
mc_binding-inl.hpp Code cleanup 2012-02-19 09:55:16 -08:00
mc_binding.cpp Adding support for STL types 2012-02-19 12:57:24 -08:00
mc_binding.hpp Code cleanup 2012-02-19 09:55:16 -08:00
mc_buffer.cpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_buffer.hpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_client.cpp Cleanup 2012-02-19 18:47:09 -08:00
mc_client.hpp Cleanup 2012-02-19 18:47:09 -08:00
mc_common.hpp code reorg 2011-09-04 20:05:33 -07:00
mc_functor.hpp Code cleanup 2012-02-19 09:55:16 -08:00
mc_meta.hpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_packet.hpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_prefab-inl.hpp Adding tests for std::pair and std::map 2012-04-21 13:51:37 -07:00
mc_prefab.cpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_prefab.hpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_protocol-inl.hpp Code cleanup 2012-02-19 09:55:16 -08:00
mc_protocol.cpp Cleanup 2012-02-19 18:47:09 -08:00
mc_protocol.hpp Code cleanup 2012-02-19 09:55:16 -08:00
mc_serial-inl.hpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_serial.cpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_serial.hpp Simplifying some templates 2012-02-23 19:47:28 -08:00
mc_server.cpp Cleanup 2012-02-19 18:47:09 -08:00
mc_server.hpp Cleanup 2012-02-19 18:47:09 -08:00
mc_socket.cpp Adding support for STL types 2012-02-19 12:57:24 -08:00
mc_socket.hpp socket changes 2012-02-19 07:08:38 -08:00
mc_stream-inl.hpp qtcreator stuff 2012-02-19 07:02:35 -08:00
mc_stream.cpp Cleanup 2012-02-19 18:47:09 -08:00
mc_stream.hpp Cleanup 2012-02-19 18:47:09 -08:00
mc_token.cpp Adding support for STL types 2012-02-19 12:57:24 -08:00
mc_token.hpp qtcreator stuff 2012-02-19 07:02:35 -08:00
metacall.hpp More STL support 2012-02-19 13:28:56 -08:00
metacall.pro renaming unit test file 2012-04-14 06:35:27 -07:00
README.md Add site metadata 2021-12-14 18:37:11 -08:00
testing.cpp simplifying unit test 2012-04-23 05:24:20 -07:00

Metacall

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.