|
|
article-tgtimes-most-minimal-gopher-server.md - tgtimes - The Gopher Times |
|
|
 |
git clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tgtimes (git://bitreich.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
Tags |
|
|
 |
README |
|
|
|
--- |
|
|
|
article-tgtimes-most-minimal-gopher-server.md (2372B) |
|
|
|
--- |
|
|
|
1 # Most minimal Gopher server by tgtimes |
|
|
|
2 |
|
|
|
3 Gopher is a protocol providing a gateway to a document system, allowing |
|
|
|
4 to serve an organized hierarchy of files over the network. Dynamically |
|
|
|
5 generating the content as per user requests is also possible. The client |
|
|
|
6 side is in charge of rendering the content as it sees fit. |
|
|
|
7 |
|
|
|
8 Generating Gopher indexes and transmitting file contents or generated |
|
|
|
9 contents is low in software compmlexity, and in turn allows less expensive |
|
|
|
10 hardware to be run than complex web stacks. |
|
|
|
11 |
|
|
|
12 Which cost would we end-up for building a minimal piece of hardware able |
|
|
|
13 to host the Gopher protocol acheiving all of the above? |
|
|
|
14 The Gopher Times investigates. |
|
|
|
15 |
|
|
|
16 ## "Communication" |
|
|
|
17 While WiFi is inexpensive and fits moving device gracefully, the |
|
|
|
18 reliability of Ethernet is indicated for a server. Ethernet adds |
|
|
|
19 1 USD of cost for the transceiver handling the electricial characteristics |
|
|
|
20 of Ethernet. These typically expose an RGMII interface. |
|
|
|
21 |
|
|
|
22 ## "Processing" |
|
|
|
23 A microcontroller featuring an Ethernet peripheral (with an RGMII |
|
|
|
24 interface) could be the popular STM32F103, or an alternative |
|
|
|
25 compatible part. Enough processing power would be present for an |
|
|
|
26 embedded TCP/IP and a TLS stack. |
|
|
|
27 |
|
|
|
28 ## "Automation" |
|
|
|
29 In addition, most microcontrollers feature a large range of |
|
|
|
30 built-in peripheral such as timers and communication or analog |
|
|
|
31 interfaces, enabling automation of devices such as lighting, |
|
|
|
32 heating, laundry, motors, or an entire car, through external |
|
|
|
33 modules. This would come for no extra cost. |
|
|
|
34 |
|
|
|
35 ## "Storage" |
|
|
|
36 A slot for a MicroSD card would allow storing and updating |
|
|
|
37 the static content to serve, and storing network configuration. |
|
|
|
38 |
|
|
|
39 ## "Scripting" |
|
|
|
40 There exist project to fit programming languages onto microcontrollers. |
|
|
|
41 Separate projects for supporting a subset of each of Python, Ruby, |
|
|
|
42 Javscript, Go, Rust, Lua, Forth and more. |
|
|
|
43 |
|
|
|
44 ## "Power" |
|
|
|
45 By letting power supply happen through the USB port, a large range |
|
|
|
46 of power source can be used, such as battery, solar panels, wind |
|
|
|
47 turbine, hydropower, or power outlet. |
|
|
|
48 |
|
|
|
49 The bill of materials for such a design would approximate 5 USD. |
|
|
|
50 A marketed device with a small margin for the seller could reach |
|
|
|
51 as low as 10 USD. |
|
|
|
52 |
|
|
|
53 Interestingly, such a device would also be able to provide an |
|
|
|
54 equivalent Web service able to work with all Web client, but |
|
|
|
55 not running the existing popular Web server software stacks |
|
|
|
56 known as "Web Frameworks". |
|