4-article-tgtimes-most-minimal-gopher-server.md - tgtimes - The Gopher Times | |
git clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
4-article-tgtimes-most-minimal-gopher-server.md (2360B) | |
--- | |
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 expensi… | |
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 characteristi… | |
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". |