2016-09-07 04:16:23 +00:00
|
|
|
# Metacall #
|
2015-01-22 08:33:55 +00:00
|
|
|
|
2015-11-17 05:33:51 +00:00
|
|
|
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](http://en.wikipedia.org/wiki/Windows_Communication_Foundation). 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.
|
2015-01-22 08:33:55 +00:00
|
|
|
|
|
|
|
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](http://en.wikipedia.org/wiki/Runtime_library),
|
|
|
|
[STL](http://en.wikipedia.org/wiki/Standard_Template_Library) and
|
|
|
|
[sockets](http://en.wikipedia.org/wiki/Network_socket).
|
|
|
|
* Do prefer simplicity over a complex feature set.
|
|
|
|
* Do keep boilerplate code requirements to a minimum.
|
|
|
|
|
2015-11-17 05:33:51 +00:00
|
|
|
## License ##
|
2015-01-22 08:33:55 +00:00
|
|
|
|
2017-07-31 00:37:36 +00:00
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
|
|
this software and associated documentation files (the "Software"), to deal in
|
|
|
|
the Software without restriction, including without limitation the rights to
|
|
|
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
|
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
|
|
subject to the following conditions:
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included in all
|
|
|
|
copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
|
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
|
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
|
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|