Skip to content

A little CLI to ship data back and forth to a hosted insi database

Notifications You must be signed in to change notification settings

InsulaLabs/ferry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ferry

Client tools for the Insula Labs platform.

Binaries

  • ferry - CLI for data operations
  • portal - P2P HTTP proxy using WebRTC

Configuration

Create a ferry.yaml file or set FERRY_CONFIG environment variable:

api_key_env: INSI_API_KEY
endpoints:
  - api.insulalabs.io:443
skip_verify: false
timeout: 30s

Generate config from endpoints:

ferry --generate "endpoint1:443,endpoint2:443" > ferry.yaml

Set API key via environment variable (default: INSI_API_KEY).

Ferry CLI

Commands

Connectivity

ferry ping

Value Store (persistent)

ferry values get <key>
ferry values set <key> <value>
ferry values setnx <key> <value>
ferry values delete <key>
ferry values cas <key> <old_value> <new_value>
ferry values bump <key> <increment>
ferry values iterate <prefix> [offset] [limit]

Cache (volatile)

ferry cache get <key>
ferry cache set <key> <value>
ferry cache setnx <key> <value>
ferry cache delete <key>
ferry cache cas <key> <old_value> <new_value>
ferry cache iterate <prefix> [offset] [limit]

Events (pub/sub)

ferry events publish <topic> <data>
ferry events subscribe <topic>
ferry events purge

Blob Storage

ferry blob upload <key> <file>
ferry blob download <key> [output_file]
ferry blob delete <key>
ferry blob iterate <prefix> [offset] [limit]

P2P File Transfer

ferry p2p receive <session-id> <output-file>
ferry p2p send <session-id> <file>

Portal

WebRTC-based P2P HTTP proxy.

Receiver (waits for connection, proxies to local server):

portal receiver <session-id> <local-addr>

Sender (connects to receiver, proxies from local server):

portal sender <session-id> <local-addr>

Signaling uses cache for coordination.

Build

make prod        # Build for current platform
make cross       # Cross-compile for all platforms
make clean       # Remove build artifacts

Outputs to build/ directory.

Requirements

  • Go 1.24.2+
  • API key for Insula Labs platform

About

A little CLI to ship data back and forth to a hosted insi database

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published