federer 1.0.0

dotnet tool install --global federer --version 1.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local federer --version 1.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=federer&version=1.0.0
                    
nuke :add-package federer --version 1.0.0
                    

Federer

An HTTP file server meant primarely for streaming media to devices on the local network.

Like the tennis player, it's a server that's efficient for its size (zero dependencies). Elegant (as long as you don't read the code). And it will probably choke from time to time (2019).

Inspired while taking ThePrimeagen's course Learn the HTTP Protocol in Go with C#. I basically got sidetracked, as I was always curious how streaming media via HTTP works, and why seeking videos in particular was not possible in some servers.

Installation

dotnet tool install --global federer

Installation Script

curl -fsSL https://raw.githubusercontent.com/ptrglbvc/federer/main/install.sh | bash

Usage

# Basic usage
federer /video=/path/to/video.mp4

# Multiple routes
federer /=/path/to/video.mp4 /music=/path/to/song.mp3

# Custom port
federer /doc=/path/to/manual.pdf /vid=/path/to/tutorial.mp4 /goat=path/to/djokovic-best-points.mp4

# Show help
federer --help

Features

  • Lightweight and fast
  • Stream large files without loading into memory
  • Range request support (video seeking, resume downloads)
  • Simple route-based configuration
  • Zero dependencies outside the standard library for the tcp listener.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.0.0 98 12/29/2025