aboutsummaryrefslogtreecommitdiff
path: root/template/gsoc.html.j2
diff options
context:
space:
mode:
Diffstat (limited to 'template/gsoc.html.j2')
-rw-r--r--template/gsoc.html.j2153
1 files changed, 113 insertions, 40 deletions
diff --git a/template/gsoc.html.j2 b/template/gsoc.html.j2
index 5a8066f4..6fdc58be 100644
--- a/template/gsoc.html.j2
+++ b/template/gsoc.html.j2
@@ -9,8 +9,8 @@
9 <div class="row"> 9 <div class="row">
10 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation --> 10 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
11 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed"> 11 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
12 <a class="nav-link" href="#current">{{ _("Ideas 2020") }}</a> 12 <a class="nav-link" href="#current">{{ _("Ideas 2021") }}</a>
13 <a class="nav-link" href="#past">{{ _("Past projects") }}</a> 13 <!--<a class="nav-link" href="#past">{{ _("Past projects") }}</a>-->
14 <a class="nav-link" href="#finished">{{ _("Finished projects") }}</a> 14 <a class="nav-link" href="#finished">{{ _("Finished projects") }}</a>
15 </nav> 15 </nav>
16 </div> 16 </div>
@@ -26,7 +26,85 @@
26 </section> 26 </section>
27 27
28 28
29 <h2><a name="current" class="subnav-anchor"></a>{{ _("Ideas 2020") }}</h2> 29 <h2><a name="current" class="subnav-anchor"></a>{{ _("Ideas 2021") }}</h2>
30
31 <section>
32 <h4>Transport Next Generation (TNG): Communicator plugins</h4>
33 <p>
34 {% trans %}
35 The GNUnet team is currently working on a transport layer rewrite
36 in order to fix core issues with connectivity.
37 This new component is currently developed under the name "TNG".
38 What is currently known as "transport plugins" will in the TNG
39 be represented as "communicators".
40
41 Communicators are processes with a well defined API that allow
42 to connect peers over a specific protocol.
43 The primary protocol which are already implemented are UNIX sockets,
44 UDP sockets, and TCP sockets.
45
46 For a truly resilient network, other connectivity options such as
47 WiFi mesh, Bluetooth, HTTP(S), QUIC or even more obscure alternatives
48 such as radio are required.
49
50 In this project, the goal is to select, implement and test new
51 communicators.
52 While TNG is not yet ready, communicators can, by design, be developed
53 and tested against the current API.
54
55 We expect that this project can be worked on by multiple students
56 as there are a lot of protocols to choose from.
57 The tasks would consist of:
58 <ol>
59 <li>Deciding which communicators to implement.</li>
60 <li>Test the communicators.</li>
61 <li>Documentation.</li>
62 </ol>
63 Advantageous skills/languages/frameworks:
64 <ol>
65 <li>C</li>
66 <li>Knowledge of HTTPS, QUIC, Bluetooth or WiFi.</li>
67 </ol>
68 <br/>
69 <strong>Difficulty:</strong> Average, but depends on selected protocols.
70 <br/>
71 <strong>Mentors:</strong> Martin Schanzenbach, t3sserakt
72 {% endtrans %}
73 </p>
74 </section>
75
76 <section>
77 <h4>REST: Multi-user support</h4>
78 <p>
79 {% trans %}
80 The REST API currently only supports a single user system.
81 This is an issue as on multi-user systems, access control
82 must be enfoced on a per-user basis.
83
84 In this project, the REST service must be extended to
85 support user authentication.
86 This includes the correct handling of user context switches.
87 <ol>
88 <li>Implement user authentication.</li>
89 <li>Test the access control.</li>
90 <li>Document the changes to the REST API.</li>
91 </ol>
92 Advantageous skills/languages/frameworks:
93 <ol>
94 <li>C</li>
95 <li>Knowledge of user authentication subsystems on Linux/Unix.</li>
96 <li>REST/HTTP Authentication methods</li>
97 </ol>
98 <br/>
99 <strong>Difficulty:</strong> Beginner
100 <br/>
101 <strong>Mentors:</strong> Martin Schanzenbach
102 {% endtrans %}
103 </p>
104 </section>
105
106
107
30 <section> 108 <section>
31 <h4>re:claimID/GNUnet Browser Plugin</h4> 109 <h4>re:claimID/GNUnet Browser Plugin</h4>
32 <p> 110 <p>
@@ -103,8 +181,38 @@
103 </p> 181 </p>
104 </section> 182 </section>
105 183
184 <section>
185 <h4>Rust templates for GNUnet services</h4>
186 <p>
187 {% trans %}
188 The goal is to either build upon the (outdated) <a href="https://github.com/canndrew/gnunet-rs">GNUnet Rust
189 bindings</a> or to follow the path of <a href="GNUnet Go">https://github.com/bfix/gnunet-go</a>
190 which tries to reimplement most of the GNUnet stack.
191 The end result should be an extension template for GNUnet in the form
192 of the existing <a href="https://git.gnunet.org/gnunet-ext.git/">C template</a>
193 which allows to quickly start implementing services and libraries
194 for GNUnet.
195 {% endtrans %}
196 </p>
197 <p>
198 {% trans %}
199 <strong>Mentors:</strong> Martin Schanzenbach
200 {% endtrans %}
201 </p>
202 <p>
203 {% trans %}
204 Required Skills: Solid knowledge of Rust and ideally asynchronuous IO.
205 {% endtrans %}
206 </p>
207 <p>
208 {% trans %}
209 Difficulty level: medium
210 {% endtrans %}
211 </p>
212 </section>
213
106 <!-- Past projects: Previously proposed, but left unfinished. Inspiration for students. --> 214 <!-- Past projects: Previously proposed, but left unfinished. Inspiration for students. -->
107 <h2><a name="past" class="subnav-anchor"></a>{{ _("Past projects") }}</h2> 215 <!--<h2><a name="past" class="subnav-anchor"></a>{{ _("Past projects") }}</h2>
108 <p> 216 <p>
109 Past projects: Previously proposed, but left unfinished. Inspiration for students. 217 Past projects: Previously proposed, but left unfinished. Inspiration for students.
110 </p> 218 </p>
@@ -183,42 +291,6 @@
183 </p> 291 </p>
184 </section> 292 </section>
185 <section> 293 <section>
186 <h4>Rust APIs for GNUnet services</h4>
187 <p>
188 {% trans %}
189 There are a variety of GNUNet APIs that should be
190 exposed in the Rust wrappers. Implementing these will
191 require extending the port of GNUNet utils written by
192 Andrew Cann and Kelong Cong.
193 {% endtrans %}
194 </p>
195 <p>
196 {% trans %}
197 As an introduction to the code base, we suggest that the
198 student and Jeff Burdges together update the
199 asynchronous IO system from gjio to futures-rs or
200 another layer built upon it. Jeff Burdges is expected
201 to concurrently be implementing a GNUNet API for his own
202 mix network work.
203 {% endtrans %}
204 </p>
205 <p>
206 {% trans %}
207 <strong>Mentors:</strong> Jeff Burdges
208 {% endtrans %}
209 </p>
210 <p>
211 {% trans %}
212 Required Skills: Rust
213 {% endtrans %}
214 </p>
215 <p>
216 {% trans %}
217 Difficulty level: low
218 {% endtrans %}
219 </p>
220 </section>
221 <section>
222 <h4>Tor compatibility for GNUnet</h4> 294 <h4>Tor compatibility for GNUnet</h4>
223 <p> 295 <p>
224 {% trans %} 296 {% trans %}
@@ -520,6 +592,7 @@
520 {% endtrans %} 592 {% endtrans %}
521 </p> 593 </p>
522 </section> 594 </section>
595 -->
523 <h2><a name="finished" class="subnav-anchor"></a>{{ _("Finished projects") }}</h2> 596 <h2><a name="finished" class="subnav-anchor"></a>{{ _("Finished projects") }}</h2>
524 <!-- Commentary: Finished projects, descriptions and Links to write-ups about them. --> 597 <!-- Commentary: Finished projects, descriptions and Links to write-ups about them. -->
525 <h3>2019</h3> 598 <h3>2019</h3>