Add 'Stem Descriptor Parsing in Go' project idea
Damian Johnson

Damian Johnson commited on 2016-02-28 04:33:13
Zeige 1 geänderte Dateien mit 42 Einfügungen und 0 Löschungen.


Project idea I got from https://us.pycon.org/2016/schedule/presentation/85/ for
me and phw to co-mentor.
... ...
@@ -605,6 +605,11 @@ meetings around the world.</li>
605 605
     Tor.
606 606
     </p>
607 607
 
608
+    <p>
609
+    <b>Project Ideas:</b><br />
610
+    <i><a href="#descriptor_parsing_in_go">Stem Descriptor Parsing in Go</a></i>
611
+    </p>
612
+
608 613
     <a id="project-txtorcon"></a>
609 614
     <h3><a href="https://txtorcon.readthedocs.org">Txtorcon</a> (<a
610 615
     href="https://github.com/meejah/txtorcon">code</a>, <a
... ...
@@ -1301,6 +1306,43 @@ get ya started...
1301 1306
     </p>
1302 1307
     </li>
1303 1308
 
1309
+    <a id="descriptor_parsing_in_go"></a>
1310
+    <li>
1311
+    <b>Stem Descriptor Parsing in Go</b>
1312
+    <br>
1313
+    Language: <i>Go, Python</i>
1314
+    <br>
1315
+    Likely Mentors: <i>Damian (atagar), Philipp (phw)</i>
1316
+    <br><br>
1317
+    <p>
1318
+    Tor consists of two parts: the application and a distributed network of a
1319
+    few thousand volunteer relays. Information about these relays is public,
1320
+    and made up of documents called <b><a href="https://stem.torproject.org/tutorials/mirror_mirror_on_the_wall.html#what-is-a-descriptor">descriptors</a></b>. We have
1321
+    <a href="https://stem.torproject.org/tutorials/mirror_mirror_on_the_wall.html#are-there-any-other-parsing-libraries">three libraries capable of reading these documents</a>...
1322
+    </p>
1323
+
1324
+    <ul>
1325
+      <li><b><a href="https://stem.torproject.org/">Stem</a></b> (Python)</li>
1326
+      <li><b><a href="https://gitweb.torproject.org/metrics-lib.git/">Metrics-lib</a></b> (Java)</li>
1327
+      <li><b><a href="https://gitweb.torproject.org/user/phw/zoossh.git/">Zoossh</a></b> (Go)</li>
1328
+    </ul>
1329
+
1330
+    <p>
1331
+    Stem is the most feature rich but slowest, and conversely Zoossh is fastest
1332
+    but limited. But what if Stem used CFFI bindings to do the heavy lifting in
1333
+    Go? Could we unify these libraries, getting the feature set of Stem with
1334
+    the performance of Zoossh?
1335
+    </p>
1336
+
1337
+    <p>
1338
+    <b>Applicants should be familiar with both Python and Go. As part of your
1339
+    application for this project please write a demo CFFI binding for Stem as a
1340
+    proof of concept.</b> Bonus points if you <a
1341
+    href="https://stem.torproject.org/faq.html#how-do-i-get-started">get your
1342
+    hands wet by contributing patches</a>!
1343
+    </p>
1344
+    </li>
1345
+
1304 1346
     <a id="txtorcon_use_txaio"></a>
1305 1347
     <li>
1306 1348
     <b>Convert txtorcon to use txaio</b>
1307 1349