Files

xftp-web

Browser-compatible XFTP file transfer client in TypeScript.

Prerequisites

  • Haskell toolchain with cabal (to build xftp-server)
  • Node.js 20+
  • Chromium system dependencies (see below)

Setup

# Build the XFTP server binary (from repo root)
cabal build xftp-server

# Install JS dependencies
cd xftp-web
npm install

# Install Chromium for Playwright (browser tests)
npx playwright install chromium

If Chromium fails to launch due to missing system libraries, install them with:

# Requires root
npx playwright install-deps chromium

Running tests

# Browser round-trip test (vitest + Playwright headless Chromium)
npm run test

The browser test automatically starts an xftp-server instance on port 7000 via globalSetup, using certs from tests/fixtures/.

Build

npm run build

Output goes to dist/.