vanilla-rtb
Real Time Bidding (RTB) - Demand Side Platform framework
Utilizing modern C++11/14 features and latest BOOST libraries some critical path functionality written in C and older, easy on the eye, C++ .
Multi-bidder-model-with-communicator-for-Win-Loss-notifications
Structure ( work in progress ) :
-
/ -- the root directory
- boost-process/ -- C++11 not in official boost stack
- boost-dll/ -- C++11 not in official boost stack
- CRUD/ -- Restful web-service written in C++11 based on boost.ASIO and CRUD handlers
-
rtb/ -- C++11 framework and sandbox for testing platform solution
- core/ -- generic structures shared in the project ( RTB specific )
- common/ -- generic RTB agnostic structures
- datacache/ -- IPC data store for fast lookups and matching
- exchange/ -- exchange handlers implementations ( under review for more generic solution)
- DSL/ -- DSL formats for jsonv ( under review )
- examples/ -- root to our sandbox with examples
- [CMakeLists.txt] - cmake file
The stack of vanilla-rtb depends on other C++11 projects and is referencing them via gh-subree. To update to the latest version of boost-process , boost-dll , json-voorhees or CRUD use the following commands :
- git subtree pull --prefix jsonv git@github.com:tgockel/json-voorhees.git master --squash
- git subtree pull --prefix boost-process git@github.com:BorisSchaeling/boost-process.git master --squash
- git subtree pull --prefix boost-dll git@github.com:apolukhin/Boost.DLL.git master --squash
- git subtree pull --prefix CRUD git@github.com:venediktov/CRUD.git master --squash
###(
###Linux :
-
mkdir Release -
cd Release -
cmake -DCMAKE_BUILD_TYPE=Release .. -G "Unix Makefiles" -
gmake VERBOSE=1 -
cd .. -
mkdir Debug -
cd Debug -
cmake -DCMAKE_BUILD_TYPE=Debug .. -G "Unix Makefiles" -
gmake VERBOSE=1
###Windows : same steps as above for linux , only difference is depending on your environment either Visual Studio or NMake project can be used
-
cmake -DCMAKE_BUILD_TYPE=Release .. -G "NMake Makefiles" -
cmake -DCMAKE_BUILD_TYPE=Debug .. -G "NMake Makefiles" -
cmake -DCMAKE_BUILD_TYPE=Release .. -G "Visual Studio 14 2015" -
cmake -DCMAKE_BUILD_TYPE=Debug .. -G "Visual Studio 14 2015"
###For faster builds invoking multiple make processes , find number of cores on your system Linux command :
- nproc
4
pass it to your make script like this gmake -j4
###Running examples:
-
HTTP-Bidder - vanilla-rtb/examples/bidder$ ../../Release/examples/bidder/http_bidder_test --config etc/config.cfg
-
Cache loader - vanilla-rtb/examples$ ../Release/examples/loader/cache_loader_test --config etc/config.cfg
-
Exchange Handler with HTTP handler or Exchange Handler distributing to multi-bidders via communicator - vanilla-rtb/examples$ ../Release/examples/exchange_handler_test --config etc/config.cfg
-
Mock-bidders starting multiple in one swoop, currently configured as 5 bidders in config - vanilla-rtb/examples$ ../Release/examples/mock_bidder_test --config etc/config.cfg