Building blocks project aims to provide building blocks for the development of modern high performance system programming with C++. Idea is to make writing highly concurrent/scalable distributed applications in C++ extremely easy by leveraging and standardizing on well known design approach like event-based programming, async IO, actor based programming like pro-actor, re-actor, remote-actor etc.
C++ is steadily on the decline as the top choice for distributed systems. Languages like scala and libraries like akka make distributed development quite easy by providing language level support and library level ease. My intention for spending so much of my spare time on this library is to provide a 'akka' like library for c++ distributed system programming leveraging some of my experience building demanding file system and database applications in C++.
Currently, only Ubuntu is supported.
Linux/Unix compatible variants like Solaris, Free BSD etc.
$ git clone https://github.com/kradhakrishnan/bblocks.cc.git
$ cd bblocks
$ make ubuntu-setup
$ make clean
For debug build,
$ make
For opt build,
$ make OPT=enable
To install optimized build, (typically advised)
$ make clean
$ make OPT=enable DEBUG=disable install
To install debug build,
$ make clean
$ make install
Add -I/usr/lib/bblocks while compiling and -lbblocks -L/usr/lib while linking.
To run basic unit tests,
$ make run-unit-test
To run valgrind monitored unit tests,
$ make run-valgrind-test
To run all test suite across all build type,
$ make run-all-test
** release flags **
OPT = enable Enable optimized build
DEBUG = disable Disable debug information built into the binary
ERRCHK = enable Enable error checking
TCMALLOC = enable Use tcmalloc as memory manager
** test related **
LCOV = enable Provides code coverage information for the test runs
VALGRIND = enable Enable code provisions for valgrind testing
tsan = enable Enable thread sanitizer
asan = enable Enable address sanitizer
The code is avaiable for community consumption under LGPL v3. I am pretty open in the license, please mail me or leave a comment if you need other license arrangement for your computing needs.
I would like to implement wrapper for cython. I would love to port it to Windows, but I don't see the usecase nor do I have the time for it.
Please click on the link below to check the status of the master.