Square Open Source è una compagnia che offre ottimi strumenti agli sviluppatori, di cui tanti dedicati al mobile come Picasso, Dagger e OkHttp. In questo post, parliamo di un’altra loro grande idea, Okio, una libreria che mira a fare un pò di ordine tra gli strumenti che in Java trattano l’Input/Output, ottimizzando al contempo il rendimento.
Okio si basa su due concetti principali: ByteString, una sequenza di byte immutabile che permette di trattare i dati binari come valori, autodeterminando il formato da utilizzare; Buffer è una sequenza di byte che può essere modificata e viene trattata come una coda (i dati vengono scritti alla fine della struttura e vengono letti in testa).
Entrambe le tipologie di oggetti sono caratterizzati da un funzionamento ottimizzato. Il ByteString, ad esempio, conserva i dati convertiti in UTF-8 in una sorta di cache rendendoli disponibili per una decodifica successiva mentre il Buffer si rende molto utile nel passaggio di dati tra thread differenti in quanto riesce a modificare il thread di appartenenza di segmenti di dati senza necessità di effettuare una vera e propria copia.
Come di consueto questa libreria può essere inclusa in vari modi, con o senza l’aiuto di un sistema di build automation:
- si può scaricare direttamente l’ultimo file jar;
- integrare la libreria in un progetto Java mediante Maven:
<dependency> <groupId>com.squareup.okio</groupId> <artifactId>okio</artifactId> <version>1.11.0</version> </dependency>
- ricorrere a Gradle mediante una sua direttiva:
compile 'com.squareup.okio:okio:1.11.0'
Le versioni qui riportate potrebbero naturalmente essere state modificate al momento dell’utilizzo pertanto le si verifichi sempre sul sito del progetto, alla sezione Download.
Come trattate l’Input/Output nei vostri progetti Java? Vi affidate all’approccio tradizionale agli Stream o vi siete già rivolti a qualche libreria come Okio?
Fateci sapere!
No Responses to “Okio, libreria per ottimizzare l’input/output in Java”