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