Skip to content

GShreekar/ladex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LADEX - Local Area Data Exchange

A fast and secure peer-to-peer file transfer tool built with Rust that enables seamless file sharing over local networks without requiring internet connectivity. LADEX provides a beautiful web interface with optional authentication for secure transfers.

Features

  • Optional Authentication: Secure access with generated or custom security codes
  • Zero Configuration: No complex setup required - just run and share
  • Local Network Only: All transfers happen over your local network, ensuring privacy and speed
  • Real-time Transfer: WebSocket-based communication for instant file transfers
  • Chunked Transfer: Efficient handling of large files with progress tracking
  • Text Messaging: Send quick text messages between connected peers
  • Folder Support: Transfer entire directories with automatic compression
  • Cross-Platform: Works on Linux, macOS, and Windows
  • Web Interface: Modern, responsive web UI accessible from any browser
  • Session Security: Server restart invalidates old authentication cookies

Supported Platforms

  • Linux (x86_64, aarch64)
  • macOS (x86_64, Apple Silicon)
  • Windows (x86_64)

Installation

Quick Install

Linux/macOS:

curl -sSL https://raw.githubusercontent.com/GShreekar/ladex/main/install.sh | sh

Windows: Download the latest release from GitHub Releases and extract the binary to a directory in your PATH.

Manual Installation

  1. Download the appropriate binary for your platform from GitHub Releases
  2. Extract the archive
  3. Move the binary to a directory in your PATH (e.g., /usr/local/bin on Linux/macOS)
  4. Make it executable: chmod +x ladex (Linux/macOS only)

Usage

Starting the Server

Basic Usage (No Authentication)

Launch LADEX with open access:

ladex

With Authentication

Launch LADEX with a custom 6-digit security code:

ladex 123456

Or generate a random security code automatically:

ladex -s
# or
ladex --secure

The server will display the generated code in the terminal.

The server will start on http://localhost:8080 by default. Other devices on your network can connect using your local IP address (e.g., http://192.168.1.100:8080).

Authentication Flow

When authentication is enabled:

  1. Server displays code: The terminal shows the 6-digit security code
  2. Users enter code: First-time visitors must enter the code on the login page
  3. Session management: Authenticated users stay logged in until server restart
  4. Logout option: Users can manually logout using the logout button

Basic Operations

  1. Open your browser and navigate to the server address
  2. Enter security code (if authentication is enabled)
  3. Connect peers by sharing the URL and security code with other devices
  4. Send files by dragging and dropping or using the file picker
  5. Send folders by selecting entire directories (automatically zipped)
  6. Send messages using the text input field
  7. Monitor transfers with the real-time progress indicators
  8. Logout when finished (authentication mode only)

Command Line Options

ladex [SECURITY_CODE]  # Launch with custom 6-digit security code
ladex -s, --secure     # Launch with auto-generated security code
ladex                  # Launch without authentication (open access)

Build from Source

Prerequisites

  • Rust (latest stable version)

Building

  1. Clone the repository:
git clone https://github.com/GShreekar/ladex.git
cd ladex
  1. Build the project:
cargo build --release
  1. The binary will be available at target/release/ladex

Development

For development with auto-reload:

cargo run

Run tests:

cargo test

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add some new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Author

G Shreekar - GitHub Profile


For more information, visit the GitHub repository or check out the latest releases.

About

A peer-to-peer file sharing application built with Rust and WebSockets

Topics

Resources

License

Stars

Watchers

Forks

Contributors