LANCAST
A Privacy-First, Zero-Infrastructure Communication System
I’m building LANCAST, a privacy-first, peer-to-peer communication system designed around a fundamentally different networking model: no cloud, no servers, no accounts, and no unnecessary persistence. ↗
LANCAST enables devices on the same local network to discover each other and communicate directly through encrypted peer-to-peer sessions, while keeping the communication lifecycle intentionally ephemeral.
The core idea is simple:
If sensitive data never needs to leave the local network and does not need to become a permanent record, the amount of infrastructure that needs to be trusted, secured, and maintained can be dramatically reduced.
The Architecture
LANCAST is currently being developed as a native desktop application using React 18, Tauri 2, and Rust.
The frontend handles the application interface and user interaction, while the Rust backend owns the security-sensitive networking, cryptographic operations, native integrations, and communication layer.
The architecture is intentionally separated into clear boundaries:
React → Tauri IPC → Rust Core → Local Network
The repository contains the implementation as well as a dedicated architecture document describing the system in greater depth. ↗
There is no conventional HTTP messaging backend sitting between communicating peers.
There is no cloud relay required for the core LAN communication model.
The Tauri IPC boundary provides the integration surface between the application interface and the native Rust layer, keeping security-critical functionality outside the frontend execution environment.
Zero Cloud. Zero Accounts. Zero Persistent Message History.
LANCAST is being designed around three core principles.
No cloud dependency.
The communication model is designed to operate directly over the local network rather than requiring a remote messaging infrastructure.
No mandatory account system.
Peers can communicate locally without requiring the conventional cloud identity and authentication workflow used by centralized messaging platforms.
Ephemeral application state.
Operational messages, sessions, keys, groups, and related state are maintained in memory rather than being built around a conventional persistent messaging database.
The philosophy is straightforward:
Minimize the existence of sensitive data instead of building an enormous permanent archive and attempting to protect it afterward.
When the application terminates, its in-memory application state is reclaimed with the process rather than becoming a permanent cloud conversation history.
This is not simply a privacy feature added at the interface level.
It is part of the architecture.
Secure Peer Discovery
LANCAST does not require users to manually exchange IP addresses before communicating.
Peers can discover each other through UDP multicast on the local network.
A LANCAST-specific protocol marker is used to identify relevant discovery frames, allowing participating instances to recognize one another.
The conceptual flow is:
Local Network → Multicast Discovery → Peer Detection → Session Establishment
The network itself becomes the discovery layer.
There is no central peer directory that every device needs to contact before discovering another local participant.
Ephemeral Cryptographic Sessions
Once two peers discover each other, LANCAST establishes a cryptographic session using Curve25519 ECDH.
The resulting shared secret is expanded into session-specific cryptographic material through HKDF-SHA256.
Application traffic is then protected using AES-256-GCM authenticated encryption.
The communication protocol also incorporates message authentication and sequence-based replay protection.
Conceptually, the security pipeline is:
Peer Discovery → Key Exchange → Key Derivation → Encryption → Transport → Authentication → Replay Validation → Decryption
The important architectural property is that the communication session is established directly between peers rather than being delegated to a centralized messaging service.
Encrypted Peer-to-Peer Communication
After discovery and session establishment, communication moves directly between participating peers.
LANCAST currently uses TCP for its full-duplex messaging and transfer channel, with application-level framing and encrypted payloads.
The communication path can be represented as:
Application Data
↓
Session Cryptography
↓
Encrypted Frame
↓
TCP Transport
↓
Remote Peer
↓
Authentication
↓
Decryption
This removes the conventional application-level intermediary from the communication path.
The peers communicate with each other instead of sending the conversation through a centralized messaging server.
RAM-Only Data Lifecycle
One of the defining architectural decisions in LANCAST is its ephemeral state model.
The frontend uses Zustand for application state, while the backend maintains operational state through in-memory Rust structures. ↗
There is no conventional message-history database sitting behind the communication layer.
There is no server-side conversation archive that needs to be synchronized back to the client.
The intended lifecycle is:
Create → Use → Terminate → Disappear
This changes the security and privacy model significantly compared with systems designed around permanent communication histories.
The objective is not to create a more secure permanent archive.
The objective is to avoid creating an archive where one is not necessary.
Screenshot Protection
LANCAST also approaches privacy beyond network encryption.
For protected application views, the desktop layer can use native operating-system mechanisms to restrict supported screen-capture paths.
On Windows, LANCAST uses SetWindowDisplayAffinity with WDA_EXCLUDEFROMCAPTURE.
On macOS, native NSWindow sharing configuration is used for the corresponding protection mechanism.
Linux support is handled on a best-effort basis because screenshot behavior varies significantly depending on the compositor and display environment.
The important distinction is that this protection is implemented at the native desktop layer rather than being treated as a frontend-only visual feature.
Broadcast Mode
LANCAST includes an explicit Broadcast Mode for controlling when a peer announces its presence on the local network.
Rather than assuming that a UI action automatically means a network operation succeeded, the system can wait for actual peer acknowledgement before treating the broadcast state as active.
This creates a distinction between:
Application Intent
and
Confirmed Network State
That distinction becomes increasingly important as LANCAST evolves toward more complex peer-to-peer communication.
Groups and Private Communication
LANCAST is not limited to one-to-one messaging.
The system includes a group communication model supporting public and private groups, membership management, invitations, and real-time group events.
Public groups can participate in local discovery.
Private groups follow a more controlled membership model, where invitation and membership state determine participation.
This extends the peer-to-peer architecture from individual sessions into controlled local communication spaces.
Encrypted File Transfer
LANCAST also supports direct file transfer through the encrypted peer connection.
Files are divided into chunks and transmitted through the established communication channel before being reconstructed by the receiving peer.
The current implementation supports transfers up to 100 MB per transfer, with multiple files supported within the documented transfer model.
The conceptual pipeline is:
File → Chunking → Encryption → Encrypted Transport → Reassembly → User-Controlled Download
The receiving application does not need to immediately turn the transferred data into permanent application storage.
The user controls when the received file is downloaded.
This preserves the broader ephemeral-data philosophy of the system.
Native Desktop Stack
The current technology stack is intentionally focused on combining modern UI development with native systems programming.
Frontend: React 18, JSX
Styling: Tailwind CSS
State Management: Zustand
Animation: Framer Motion
Native Runtime: Tauri 2
Backend: Rust
Networking: UDP Multicast + TCP
Key Exchange: Curve25519 ECDH
Key Derivation: HKDF-SHA256
Encryption: AES-256-GCM
Integrity / Authentication: HMAC-SHA512
Build Tooling: Vite
Distribution: Windows, macOS, and Linux
The project is being developed as a native application rather than as a browser-only communication interface. ↗
Why Rust + Tauri?
The choice of Rust + Tauri is fundamentally architectural.
A modern React frontend provides a productive environment for building the interface and application experience.
Rust provides the native systems layer required for security-sensitive functionality such as:
Network communication
Cryptographic operations
Session management
File streaming
Native operating-system integration
Window-level privacy controls
Resource management
Tauri provides the bridge between these two worlds while keeping the native application layer lightweight.
The result is a stack where the interface can remain highly productive while the lower-level communication and security logic remains under native control.
Beyond Desktop
LANCAST is now expanding beyond its original desktop implementation.
The repository contains a dedicated LanCastMobile project initialized around React Native, marking the beginning of the mobile direction. ↗
However, mobile support is not simply a matter of recreating the desktop interface.
Mobile operating systems introduce additional constraints around:
Local-network permissions
Background execution
Process lifecycle
Battery consumption
Network discovery
Sandboxing
Platform-specific networking behavior
The real challenge is preserving LANCAST's communication model across different execution environments while respecting the constraints imposed by each operating system.
From Application to Protocol
The most interesting part of LANCAST is not the chat interface.
It is the underlying communication architecture.
The project combines:
Local Peer Discovery
Ephemeral Cryptographic Sessions
Authenticated Encrypted Transport
RAM-Only State
Native OS Security Controls
Direct Peer-to-Peer Networking
Cross-Platform Native Execution
into a single communication system.
At that point, LANCAST starts becoming more than a messaging application.
It becomes an exploration of what a local-first communication protocol can look like when privacy is treated as an architectural constraint from the beginning.
The Hard Problems Ahead
There are several significant systems problems still ahead.
Mobile Networking
Maintaining reliable peer discovery and communication under mobile operating-system restrictions.
Mesh Networking
Allowing communication to extend beyond directly reachable peers through multi-hop local routing.
Ephemeral Voice
Introducing real-time voice communication while preserving the LAN-only communication model.
Protocol Evolution
Designing versioned protocol frames so that future LANCAST releases can evolve without unnecessarily breaking existing deployments.
Security Hardening
Continuously reviewing the cryptographic protocol, IPC boundaries, memory lifecycle, authentication flow, and native integrations.
Cross-Platform Consistency
Maintaining comparable privacy characteristics across Windows, macOS, Linux, and mobile platforms despite fundamentally different OS capabilities.
These are not simply UI features.
They are systems-engineering problems.
What I’m Working Toward
The next stages of LANCAST include:
• Ephemeral voice channels over local networks
• Disappearing message timers
• Multi-hop mesh routing
• CLI companion tooling for headless environments
• Plugin APIs for custom message renderers
• Continued mobile development
The long-term objective is not to recreate another cloud-based social platform.
It is to build a reusable communication layer that can operate locally without requiring permanent centralized infrastructure.
Why Build This?
Modern communication has normalized a very specific architecture:
Device → Internet → Cloud → Internet → Device
LANCAST asks a different question:
What if the devices could simply communicate directly?
For many local environments, the participants are already physically close and connected to the same network.
A classroom may not need a remote messaging server to exchange information.
A laboratory may not want sensitive communication routed through an external service.
A private office may prefer communication that remains inside its network.
A temporary event may need communication without requiring every participant to create an account.
A development environment may benefit from an isolated local communication channel.
In all of these cases, the local network already exists.
LANCAST explores whether that network can become the communication infrastructure itself.
From Chat Application to Local Communication Layer
The long-term vision is larger than messaging.
The system is being designed toward a communication layer capable of supporting:
Desktop ↔ Desktop
Desktop ↔ Mobile
Mobile ↔ Mobile
and eventually:
Peer ↔ Peer ↔ Peer
through local and mesh-based networking.
Messaging is the starting point because it provides a clear demonstration of the architecture.
The underlying concept is much broader.
Current Status
LANCAST is currently a Work in Progress and is being actively developed.
The public repository contains the desktop implementation, native Rust/Tauri layer, mobile project foundation, architecture documentation, build configuration, and ongoing project history. ↗
The project is open source under the MIT License. ↗
The current milestone is not about declaring the system finished.
It is about getting the foundations right first:
Networking.
Cryptography.
Protocol Design.
State Lifecycle.
Native Security.
Cross-Platform Architecture.
Everything else can be built on top of those foundations.
One Principle
LANCAST is being built around one principle:
Communication should not require permanent infrastructure.
No unnecessary intermediary.
No mandatory cloud.
No permanent communication archive by default.
Just peers, a local network, and an encrypted communication layer.
Broadcast on LAN. Encrypted. Instant. Traceless. ↗