#file-transfer #web-server #recursion #serve #path #setup #command-line

app fidelityfetch

Seamlessly setup a webserver to serve files recursively from a specified path

8 unstable releases (3 breaking)

0.4.1 Nov 15, 2024
0.4.0 Oct 27, 2024
0.3.3 Oct 19, 2024
0.3.0 Aug 20, 2024
0.1.1 Aug 3, 2024

#122 in HTTP server

Download history 12/week @ 2024-08-10 152/week @ 2024-08-17 12/week @ 2024-08-24 1/week @ 2024-08-31 4/week @ 2024-09-14 4/week @ 2024-09-21 4/week @ 2024-09-28 1/week @ 2024-10-05 143/week @ 2024-10-12 184/week @ 2024-10-19 123/week @ 2024-10-26 25/week @ 2024-11-02 64/week @ 2024-11-09 59/week @ 2024-11-16 5/week @ 2024-11-23

159 downloads per month

MIT/Apache

110KB
1K SLoC

Table of Contents↗️

Fidelity Fetch

fife

GitHub release WindowsLinuxmacOS

Purpose

Serve files efficiently on a local network.

  • Browse/open/download the files through a web browser
  • Easily configurable server
  • Support for range requests
  • Single self-contained binary
  • mDNS/DNS-SD capabilities

Quick Start

Recursively serve <path> and all its contents at <hostname>.local:<port>

fife -p <port> -m <hostname> --root <path>

The content can be browsed through a web browser at http://<hostname>.local:<port>

Note: Many phones do not support mDNS resolution, but your PC does unless it is ancient. In that case you need to specify the IP instead of the mDNS hostname to access the contents.

The contents can also be fetched through the command-line, e.g.

curl http://<hostname>.local:<port>/some/path/to/file.txt # Get file.txt
curl -r 99-499 http://<hostname>.local:<port>/foo.bin # Starting from byte 99, get the next 400 bytes of foo.bin

If no port is specified, any available port is used (fife requests a free port from the OS).

Demo

Installing and setting up on a Raspberry Pi Zero W

demo-fife

Installation

Prebuilt binaries

Check out the the release page.

From source

cargo install fidelityfetch

TODO: Yocto recipe

Dependencies

~10–19MB
~260K SLoC