| Crates.io | voltlane |
| lib.rs | voltlane |
| version | 0.1.0 |
| created_at | 2025-07-26 16:10:34.633828+00 |
| updated_at | 2025-07-26 16:10:34.633828+00 |
| description | Voltlane TCP multiplexer, turning N TCP streams intoa a single "firehose" stream. |
| homepage | https://voltlane.net |
| repository | https://github.com/voltlane/voltlane |
| max_upload_size | |
| id | 1769255 |
| size | 111,480 |
Stop letting connection management dictate the architecture of your app:
Voltlane collapses thousands of concurrent connections into one high-speed stream, slashing server complexity and attack vectors. Voltlane’s multiplexed stream heals dropped clients and deflects attacks, letting your backend work like every day's a sunny day.
You're building a product which needs N connections; an IoT app, a multiplayer game, an app. You've named your product, picked a solid authentication method, chose a language and tech stack. Now, you're staring down the barrel of handling N concurrent connections:
Voltlane rethinks the transport layer:
N clients are multiplexed into a single TCP stream (a "firehose") with minimal-overheadVoltlane is:
See the SPEC.txt.
Listener:
listener.address: Address to listen on. For example 127.0.0.1:42000, ::1:42000, test.example.com:6969, etc.Master:
master.channel_capacity: Capacity of the buffer for messages to the master server. Must be at least 1. The higher the number, the higher the potential memory usage. This must be high if it's likely that the master server will be hammered with messages and not keep up sometimes, to avoid blocking the connection server due to exceedingly high backpressure. This value heavily depends on your use case, so make sure to tweak it accordingly.Clients:
clients.channel_capacity: Capacity of the buffer for messages to and from clients. The higher this number, the more memory is used—however, if this is too small and your clients can't keep up, the excessive backpressure will slow down or block the connection server. This is one of the most powerful performance dials.clients.stale_timeout_secs: The timeout of stale clients, in seconds. When a client disconnects ungracefully, they become a stale clients for stale_timeout_secs seconds, during which time they are allowed to reconnect.clients.stale_reap_interval_secs: Interval at which to check for clients who have been disconnected for over stale_timeout_secs. For perfect second accuracy, use 1, for marginally lower CPU usage use a higher number like 5 or 15.clients.missed_packets_buffer_size: Size of the stale client missed packet buffer. Set to 0 to turn off missed packet buffering. If this is greater than zero, the connection server will buffer messages meant for this client, and send them to the client in case it reconnects within stale_timeout_secs. If this is 0, its disabled, and the master server attempting to send a message to a stale client will immediately fail (drop) that client.