Skip to content

Vertex-Tools/Vapor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vapor Vapor

NuGet Version Framework Platform License

Vapor è un framework IPC (Inter-Process Communication) Full-Duplex ad altissime prestazioni e bassissima latenza per .NET. Sfruttando i Memory-Mapped Files (MMF) e i semafori nativi del sistema operativo, Vapor permette a due o più processi separati di scambiarsi pacchetti di byte direttamente nella RAM condivisa, garantendo un sovraccarico della CPU dello 0% a riposo e un livello di allocazioni prossimo allo zero.

Nato per supportare ecosistemi complessi e sensibili alla latenza (come tool di gestione stile LocalAdmin per server dedicati, bot di integrazione o microservizi locali), Vapor supera i limiti prestazionali e i ritardi tipici dei tradizionali Socket TCP o WebSockets locali.


🏗️ Architettura & Performance

Vapor divide la comunicazione in due canali monodirezionali paralleli strutturati su un RingBuffer (Buffer Circolare) binario non gestito. Questo previene i rallentamenti dovuti al Garbage Collector (GC) e azzera i conflitti di lettura/scrittura.

Struttura dell'Header di Memoria (Primi 8 Byte)

Ogni canale alloca un segmento fisso per tracciare i puntatori in modo atomico:

  • Offset 0x00 (4 byte): WritePosition — Indica dove il mittente scriverà il prossimo blocco.
  • Offset 0x04 (4 byte): ReadPosition — Indica fino a dove il destinatario ha completato la lettura.
  • Offset 0x08+ : DataBuffer — Lo spazio circolare effettivo in cui scorrono i messaggi (Lunghezza + Payload).

La sincronizzazione tra i processi è gestita tramite EventWaitHandle cross-process: il thread di ascolto viene congelato a livello di kernel del sistema operativo e si risveglia istantaneamente solo quando viene notificato un nuovo pacchetto.


🛠️ Installazione

Il core della libreria è sviluppato in .NET Standard 2.0 per garantire la massima compatibilità cross-runtime (supporta sia .NET 8.0+ che ambienti server-side restrittivi o legacy).

Assicurati che il tuo progetto referenzi il pacchetto di supporto per la memoria nel file .csproj:

<ItemGroup>
    <PackageReference Include="System.Memory" Version="4.5.5" />
</ItemGroup>

About

A high-performance, ultra-low latency Full-Duplex IPC framework built on Shared Memory (Memory-Mapped Files) and native OS synchronization. Designed for zero-allocation cross-process communication with 0% CPU overhead at rest. Perfect for heavy server-side integrations, external consoles, and local microservices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages