xref: /aosp_15_r20/external/rappor/client/README.md (revision 2abb31345f6c95944768b5222a9a5ed3fc68cc00)
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