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

app fidelityfetch

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

4 releases (2 breaking)

0.3.0 Aug 20, 2024
0.2.0 Aug 5, 2024
0.1.1 Aug 3, 2024
0.1.0 Aug 3, 2024

#65 in HTTP server

Download history 186/week @ 2024-07-29 162/week @ 2024-08-05 164/week @ 2024-08-19 1/week @ 2024-08-26

407 downloads per month

MIT license

97KB
1K SLoC

Rust 1K SLoC // 0.0% comments Shell 160 SLoC // 0.0% comments
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

curl -L -H "Accept: application/vnd.github.v3.raw" \
    https://api.github.com/repos/CramBL/fidelityfetch/contents/install.sh \
    | sh -s -- --to <DEST>

From source

cargo install fidelityfetch

Dependencies

~10–19MB
~256K SLoC