All Projects → bamiaux → iobit

bamiaux / iobit

Licence: MIT license
Package iobit provides primitives for reading & writing bits

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to iobit

Xml
XML without worries
Stars: ✭ 35 (+118.75%)
Mutual labels:  writer, reader
maildir
A Go package for reading & writing messages in maildir format
Stars: ✭ 13 (-18.75%)
Mutual labels:  writer, reader
Ini
Ini file reader/writer for C# / .NET written in pure .NET in a single source file
Stars: ✭ 43 (+168.75%)
Mutual labels:  writer, reader
Asmresolver
A library for editing PE files with full .NET metadata support
Stars: ✭ 267 (+1568.75%)
Mutual labels:  writer, reader
Qtcsv
Library for reading and writing csv-files in Qt.
Stars: ✭ 156 (+875%)
Mutual labels:  writer, reader
Choetl
ETL Framework for .NET / c# (Parser / Writer for CSV, Flat, Xml, JSON, Key-Value, Parquet, Yaml, Avro formatted files)
Stars: ✭ 372 (+2225%)
Mutual labels:  writer, reader
Cistern
Ruby API client framework
Stars: ✭ 81 (+406.25%)
Mutual labels:  writer, reader
Spout
Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way
Stars: ✭ 3,861 (+24031.25%)
Mutual labels:  writer, reader
Bitio
Optimized bit-level Reader and Writer for Go.
Stars: ✭ 145 (+806.25%)
Mutual labels:  writer, reader
Parquet4s
Read and write Parquet in Scala. Use Scala classes as schema. No need to start a cluster.
Stars: ✭ 125 (+681.25%)
Mutual labels:  writer, reader
Xopen
open files for buffered reading and writing in #golang
Stars: ✭ 55 (+243.75%)
Mutual labels:  writer, reader
mp4-rust
🎥 MP4 reader and writer library in Rust! 🦀
Stars: ✭ 149 (+831.25%)
Mutual labels:  writer, reader
Iostreams
IOStreams is an incredibly powerful streaming library that makes changes to file formats, compression, encryption, or storage mechanism transparent to the application.
Stars: ✭ 84 (+425%)
Mutual labels:  writer, reader
Acr122u Reader Writer
A simple tool to read/write Mifare RFID tags with an ACR122U device
Stars: ✭ 169 (+956.25%)
Mutual labels:  writer, reader
java-class-tools
Read and write java class files in Node.js or in the browser.
Stars: ✭ 27 (+68.75%)
Mutual labels:  writer, reader
ariel-news-app
News App developed with Flutter featuring beautiful UI, category-based news, story for faster news reading, inbuilt article viewer, share feature, and more.
Stars: ✭ 31 (+93.75%)
Mutual labels:  reader
qrrs
CLI QR code generator and reader written in rust
Stars: ✭ 29 (+81.25%)
Mutual labels:  reader
laravel-xlswriter
an excel export/import tool for laravel based on php-xlswriter
Stars: ✭ 54 (+237.5%)
Mutual labels:  writer
react-viewer
Online EPUB/Comics viewer
Stars: ✭ 52 (+225%)
Mutual labels:  reader
myreader
基于React实现的【绿色版电子书阅读器】,可以免费看任何小说,支持离线下载,不过还是得支持正版哦!
Stars: ✭ 27 (+68.75%)
Mutual labels:  reader

iobit GoDoc Build Status

Package iobit provides primitives for reading & writing bits The main purpose of this library is to remove the need to write custom bit-masks when reading or writing bitstreams, and to ease maintenance.

Download:

go get github.com/bamiaux/iobit

Full documentation at http://godoc.org/github.com/bamiaux/iobit


Package iobit provides primitives for reading & writing bits

The main purpose of this library is to remove the need to write custom bit-masks when reading or writing bitstreams, and to ease maintenance. This is true especially when you need to read/write data which is not aligned on bytes.

Errors are sticky so you can check for errors after a chunk of meaningful work rather than after every operation.

For example, with iobit you can read an MPEG-TS PCR like this:

r := iobit.NewReader(buffer)
base := r.Uint64(33)     // PCR base is 33-bits
r.Skip(6)                // 6-bits are reserved
extension := r.Uint64(9) // PCR extension is 9-bits

instead of:

base  = uint64(buffer[0]) << 25
base |= uint64(buffer[1]) << 17
base |= uint64(buffer[2]) << 9
base |= uint64(buffer[3]) << 1
base |= buffer[4] >> 7
extension := uint16(buffer[4] & 0x1) << 8
extension |= buffer[5]

and write it like this:

w := iobit.NewWriter(buffer)
w.PutUint64(33, base)
w.PutUint32(6, 0)
w.PutUint32(9, extension)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].