1*2abb3134SXin LiRAPPOR Clients 2*2abb3134SXin Li============== 3*2abb3134SXin Li 4*2abb3134SXin LiThis directory contains RAPPOR client implementations in various languages. 5*2abb3134SXin Li 6*2abb3134SXin LiThe privacy of RAPPOR is based on the client "lying" about the true values -- 7*2abb3134SXin Lithat is, not sending them over the network. 8*2abb3134SXin Li 9*2abb3134SXin LiThe clients are typically small in terms of code size because the RAPPOR 10*2abb3134SXin Liclient algorithm is simple. See the README.md in each subdirectory for details 11*2abb3134SXin Lion how to use the library. 12*2abb3134SXin Li 13*2abb3134SXin LiCommon Test Protocol 14*2abb3134SXin Li-------------------- 15*2abb3134SXin Li 16*2abb3134SXin LiWhen implementing a new RAPPOR client, you can get for free! 17*2abb3134SXin Li 18*2abb3134SXin LiThe `regtest.sh` script in the root of this repository does the following: 19*2abb3134SXin Li 20*2abb3134SXin Li1. Create test input data and feed it into your client as a CSV file 21*2abb3134SXin Li2. Preprocesses your client output (also CSV) 22*2abb3134SXin Li3. Runs the RAPPOR analysis, learning aggregate statistics from encoded values 23*2abb3134SXin Li4. Compares the analysis to the true client values, with metrics and plots. 24*2abb3134SXin Li 25*2abb3134SXin LiTo have your client tested, you need a small executable wrapper, which reads 26*2abb3134SXin Liand write as CSV file in a specified format. 27*2abb3134SXin Li 28*2abb3134SXin LiThen add it to the `_run-one-instance` function in `regtest.sh`. 29*2abb3134SXin Li 30*2abb3134SXin Li<!-- 31*2abb3134SXin Li 32*2abb3134SXin LiTODO: 33*2abb3134SXin Li- more details about protocol 34*2abb3134SXin Li 35*2abb3134SXin Li--> 36*2abb3134SXin Li 37*2abb3134SXin Li 38*2abb3134SXin Li 39*2abb3134SXin Li 40*2abb3134SXin Li 41*2abb3134SXin Li 42*2abb3134SXin Li 43*2abb3134SXin Li 44