article-tgtimes-most-minimal-gopher-server.mw - tgtimes - The Gopher Times HTML 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".