User profile picture

Vladimir Venediktov

@vanilla-rtb
  • vanilla-rtb
  • README.md

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++ .

vanilla-rtb ecosystem

Multi-bidder-model-with-communicator-for-Win-Loss-notifications

Join the chat at https://gitter.im/vanilla-rtb/Lobby build

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
      • bidder/ -- collection of application specific classes to support targeting
      • loader/ -- collection of application specific classes to support campaign loading
  • [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

###(📗) To build vanilla-rtb use following commands in the root of vanilla-rtb

###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

Activity

View all
Loading
There was an error loading users activity calendar.
  • Loading

Personal projects

View all
  • Loading
Loading

Info

Venediktes Gruppe, LLC
California
Member since March 01, 2017