The easiest way to evaluate Recommender Systems


WrapRec is an easy-to-use open-source toolkit, written in C#, that allows users to easily build a recommender model and evaluate it.

WrapRec is not about low-level RecSys algorithms, its instead a framework which Wrap several RecSys toolkits and make it possible to evaluate several algorithms under same evaluation framewrok.


Easy to Use

To perform experiments with WrapWrec all you need to do is to write your settings in a configuration file.

Wrap Multiple Algorithms, Evaluate on Single Framework

WrapRec is designed to wrap multiple algorithms (from different toolkits) and evaluate your model under a single evaluation framework.

Multiple experiments in one Run

In WrapRec parameters (that you define in the config file) can have multiple values. WrapRec detects those values and run evaluation experiments as many times as the cartesian product of all those parameters.

Context-aware Recommendation

WrapRec contain components that makes it easy to perform context-aware recommendations.

Multiple Evaluation Methods

With WrapRec you can run multiple evaluation methods on a single algorithm and compare the results.

Easily Extendible

Without requiring to modify the WrapRec source code, you can define your own extension and plug it into the framework.

How to Use

WrapRec can be simply used by running the executable application. All the settings and parameters should be defined in an xml-based configuration file. Using WrapRec is as easy as running the following command:


wraprec.exe [config.xml]

Linux and Mac

In Linux and Mac you should have .Net Mono installed and the WrapRec can be runned via:
mono wraprec.exe [config.xml]

Configuration File

In WrapRec all the desired settings and parameters are defined in a signle configuration file. With the configuration file you shoud specify four main things:
  • Models

    To specify the models that you use for training the recommender system
  • Data

    To specify where the data is stored and how it should be loaded
  • Splits

    To define how the data should be splited (for training and evaluation)
  • Evaluation

    To specify the methods and metrics for evalution
Check Get started page to learn about the format of the configuration file.