Skip to content

Latest commit

 

History

History
33 lines (27 loc) · 2.05 KB

README.md

File metadata and controls

33 lines (27 loc) · 2.05 KB

Kraggs.IO.Endian

Kraggs.IO.Endian is a simple Portable endian aware conversion library. It started out as an alternative to the BinaryReader/BinaryWriter apis, but has now also a BitConverter alternative. Planned improvements are Endian Array Conversion functions for speeding things up even more and Async Stream conversion functions. Instead of using the excellent Mono.DataConvert I created my own endian conversion library which is portable and designed against .Net 4.5. Also all the conversion functions are reevaluated based on performance tests in order to find the most optimal implementation. Functionality which are currently skipped/missing for now are the Perl Pack/Unpack functions and the text functions. The speed improvements are mainly accomplished by avoiding using unsafe code, and heavy use of Aggressive Inlining

The code is validated against Mono.DataConvert with nUnit tests, but for now is mostly tested on Little Endian machines since I currently don't have access to a Big Endian Machine.

The code has been performance tested on both Mac, Linux and Windows in order the most optimal code path.

TODO

* ~~Add EndianWriter code.~~
* ~~Add EndianConverter code for non stream testing.~~
* ~~Add end user performance test for EndianConverter.~~
* ~~Recheck EndianReader/Writer based on performance results.~~
* Add Array Conversion functions.
* Add Async Array Conversion to EndianReader/Writer.
* Add Text reading/writing.
* Actually run nUnit tests on a Big Endian machine to validate code.
* Actually run nUnit tests on a ARM machine to validate code.

License

See the LICENSE file for license rights and limitations (MIT)