URI: 
       4-article-tgtimes-most-minimal-gopher-server.md - 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
       ---
       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 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".