Peerplays Fast Compile Library
when creating the websocket servers to enable deflate compression on websocket frames. This is relevant to cryptonomex/graphene#540 because the spammed data is higly compressible. In my tests, it reduces bandwidth for a single idle node by a factor of ~16, from 577kbps down to 36kbps. This doesn't require any changes to the wallets, simply upgrading the public servers will begin sending compressed data to all clients that support it. Note: this commit adds a dependency on zlib for non-apple platforms (it was already required on apple) |
||
|---|---|---|
| CMakeModules | ||
| GitVersionGen | ||
| include/fc | ||
| src | ||
| tests | ||
| vendor | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| fc.natvis | ||
| README-ecc.md | ||
| README.md | ||
fc
FC stands for fast-compiling c++ library and provides a set of utility libraries useful for the development of asynchronous libraries. Some of the highlights include:
- Cooperative Multi-Tasking Library with support for Futures, mutexes, signals.
- Wrapper on Boost ASIO for handling async opperations cooperatively with easy to code synchronous style.
- Reflection for C++ allowing automatic serialization in Json & Binary of C++ Structs
- Automatic generation of client / server stubs for reflected interfaces with support for JSON-RPC
- Cryptographic Primitives for a variaty of hashes and encryption algorithms
- Logging Infrastructure
- Wraps many Boost APIs, such as boost::filesystem, boost::thread, and boost::exception to acceleate compiles
- Support for unofficial Boost.Process library.