1 unstable release

new 0.1.0 Feb 20, 2025

#245 in Database implementations

MIT license

16KB
275 lines

titanit!

Build Dependencies crates.io

File share server for Gemini & Titan protocols

[!NOTE]

Project in development!

Install

cargo install titanit

Setup

Generate PKCS (PFX)

openssl genpkey -algorithm RSA -out server.pem -pkeyopt rsa_keygen_bits:2048
openssl req -new -key server.pem -out request.csr
openssl x509 -req -in request.csr -signkey server.pem -out server.crt -days 365
openssl pkcs12 -export -out server.pfx -inkey server.pem -in server.crt

Launch

Arguments

  • --bind, -b required, server host:port to listen incoming connections
  • --identity, -i required, filepath to server identity in PKCS (PFX) format
  • --password, -p optional, unlock encrypted identity by passphrase
  • --size, -s optional, max size limit in bytes (unlimited by default)
  • --mime, -m optional, uploads MIME type whitelist (comma separated, all by default)
  • --directory, -d optional, uploads target directory (public by default)
  • --redirect, -r optional, redirection URL on request handle complete (e.g. gemini://localhost)

Start

titanit --bind 127.0.0.1:1965 \
        --identity path/to/server.pfx

titan it!

  • titan://127.0.0.1

Dependencies

~3–14MB
~183K SLoC