Panoramica
Sto lavorando su un'applicazione client-server. Il client è scritto in C ++ (funziona su Windows, prevede di supportare Linux) e il server è un servizio .NET RESTful. Ho bisogno di HTTP POST alcuni dati al server. I dati sono un unicode string
che devo comprimere usando un algoritmo di compressione veloce (deve essere leggero sulla CPU). Sul server ho bisogno di decomprimere i byte grezzi e ottenere una stringa.
Problema
Non riesco a decomprimere i byte grezzi e alla fine i buffer di uscita del decompressore rimangono intatti.
Ho provato
Ho provato a utilizzare Google Snappy , c'è solo una versione C / C ++ e qualsiasi porta .NET don " t sembra essere finito. Ho anche controllato LZ4 , dove compressione / decompressione funziona in una lingua singola , ma quando prova a usare entrambi - Non riesco a decomprimere i dati correttamente (i byte decompressi sono impostati su 0).
Domanda
Qualcuno ha provato a utilizzare una compressione C / C ++ e una decompressione C # veloci? Qualche raccomandazione?
L'applicazione client non deve utilizzare più del 5% della CPU - questo è un requisito impreciso che ho. Ho intenzione di provare gzip e forse sgonfiare, ma non sono sicuro di poter configurare i livelli di compressione lì o se funzionerà sia in C / C ++ che in C #. Il client raccoglie alcuni dati quasi in tempo reale in un piccolo buffer, quando il buffer si riempie deve essere compresso e sottoposto a POST. L'intero processo del sistema operativo impiegherà meno del 5% della CPU della macchina. Un buffer viene pubblicato approssimativamente 2 volte al secondo, il che crea un traffico di circa 2 KB / sec.