RVAP
Remote Vector Application Protocol - a modern protocol for building remote user interfaces without traditional web technologies.
Overview
RVAP (Remote Vector Application Protocol) is a server-centric protocol for building rich, interactive applications across a network. Instead of transmitting HTML/CSS/JavaScript, RVAP uses JSON-encoded UI schemas, event messages, and binary resources to create cross-platform user interfaces.
The server maintains all application logic and UI state while the client acts as a pure renderer, displaying UI elements and capturing user input.
Design Principles
Schema-First
UIs are defined as declarative JSON schemas. Universal compatibility across programming languages.
Bandwidth Efficient
Optional compression (zstd, gzip, lz4) with CRC32 checksums. 40-70% payload reduction.
Server Authority
Application logic stays on the server. Private schema fields keep business logic confidential.
Language Agnostic
Works with any language that supports TCP and JSON. Reference implementations in Go and V.
Protocol Details
RVAP uses a 9-byte binary framing protocol over TCP with support for 29 message types covering connection, UI updates, user events, and resource delivery.
40+ Widget Types
Buttons, inputs, tables, trees, calendars, media players, and more. Complete UI building blocks.
Data Binding
One-way and two-way reactive binding with immediate or deferred synchronization modes.
Resource System
Dynamic delivery of images and fonts with LRU caching. Proactive push or on-demand pull.
Widget States
Normal, hover, pressed, focused, disabled, loading, and error states with visual feedback.
Use Cases
- Remote Desktop Applications - Cross-platform UI without web browsers
- Real-Time Dashboards - Server-driven UI for monitoring systems
- IoT Management - Lightweight protocol for resource-constrained clients
- Financial Systems - High-performance UI with real-time data
- Embedded Systems - Simple renderers for embedded devices
Why RVAP?
RVAP offers significant advantages over traditional approaches:
- vs Web Stack: No HTML/CSS/JS overhead, no browser dependency, lower latency
- vs Desktop: Cross-platform without OS-specific code, server-controlled updates
- vs RDP/VNC: Schema-based (not pixel-based), much lower bandwidth
Implementation Status
Go Implementation
Reference server with SDL2-based GUI client. Full v1.1 protocol compliance with complete widget system.
V Implementation
Active development. Protocol layer complete, 25+ widgets working, state management implemented.
Learn More
RVAP is an open specification with reference implementations available.
Contact Us