Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

netarc/byte_buffer

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ByteBuffer

ByteBuffer is a tool for reading & writing data to a blob. With the ability to easily extend it to write/read custom data types.

Quick Start

Simply:

gem install byte_buffer

Then just begin working with the Buffer with something like:

bb = ByteBuffer.new
bb.write_null_string "FOOBAR"
bb.write_word 23

file.write bb.buffer

Or maybe for reading data from our output above:

bb = ByteBuffer.new(file.read)
title = bb.read_null_string     # => FOOBAR
count = bb.read_word            # => 23

Extendable

Want to have your own custom types? No problem! Simple as including in your project at startup:

class Bytebuffer
  define_type :quad_byte do |type|
    type.read = Proc.new do |byte_buffer, args|
      result = ""
      result << byte_buffer.read_byte
      result << byte_buffer.read_byte
      result << byte_buffer.read_byte
      result << byte_buffer.read_byte
      result
    end
    type.write = Proc.new do |byte_buffer, data|
      byte_buffer.write_byte data[0]
      byte_buffer.write_byte data[1]
      byte_buffer.write_byte data[2]
      byte_buffer.write_byte data[3]
    end
  end
end

Then just use elsewhere:

bb = ByteBuffer.new(...)
bb.write_quad_byte "FOO!"
bb.write_quad_byte "BAR!"
...
bb.read_quad_byte => "FOO!"
bb.read_quad_byte => "BAR!"

Out of the box types:

misc
  string
  null_string

8bit
  uint8 => byte
  int8 => char

16bit
  uint16 => word
  int16 => short

32bit
  uint32 => dword
  int32 => long
  float

64bit
  uint64 => dwordlong
  int64 => longlong
  double

About

Ruby Byte Buffer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.