/hexdump.rb

Fully Featured and Fast hexdumping for Ruby.

Primary LanguageRubyMIT LicenseMIT

hexdump.rb

CI Gem Version

Description

Fully Featured and Fast hexdumping for Ruby.

Features

  • Supports printing ASCII, hexadecimal, decimal, octal and binary bytes.
  • Supports hexdumping bytes, characters, signed/unsigned integers, floating-point numbers, and in little/big/network endian byte orders:
    • char - signed 8bit ASCII character
    • uchar - unsigned 8bit ASCII character
    • int8 - signed 8bit integer
    • uin8 / byte - unsigned 8bit integer (default)
    • int16 / short - signed 16bit integer
    • int16_le / short_le - signed 16bit integer (little endian)
    • int16_be / short_be - signed 16bit integer (big endian)
    • int16_ne / short_ne - signed 16bit integer (network endian)
    • uint16 / ushort - unsigned 16bit integer
    • uint16_le / ushort_le - unsigned 16bit integer (little endian)
    • uint16_be / ushort_be - unsigned 16bit integer (big endian)
    • uint16_ne / ushort_ne - unsigned 16bit integer (network endian)
    • int32 / int - signed 32bit integer
    • int32_le / int_le - signed 32bit integer (little endian)
    • int32_be / int_be - signed 32bit integer (big endian)
    • int32_ne / int_ne - signed 32bit integer (network endian)
    • uint32 / uint / - unsigned 32bit integer
    • uint32_le / uint_le - unsigned 32bit integer (little endian)
    • uint32_be / uint_be - unsigned 32bit integer (big endian)
    • uint32_ne / uint_ne - unsigned 32bit integer (network endian)
    • int64 / long / long_long - signed 64bit integer
    • int64_le / long_le / long_long_le - signed 64bit integer (little endian)
    • int64_be / long_be / long_long_be - signed 64bit integer (big endian)
    • int64_ne / long_ne / long_long_ne - signed 64bit integer (network endian)
    • uint64 ulong / ulong_long - unsigned 64bit integer
    • uint64_le / ulong_le / ulong_long_le - unsigned 64bit integer (little endian)
    • uint64_be / ulong_be / ulong_long_be - unsigned 64bit integer (big endian)
    • uint64_ne / ulong_ne / ulong_long_ne - unsigned 64bit integer (network endian)
    • float - single precision 32bit floating-point number
    • float_le - single precision 32bit floating-point number (little endian)
    • float_be - single precision 32bit floating-point number (big endian)
    • float_ne - single precision 32bit floating-point number (network endian)
    • double - double precision 64bit floating-point number
    • double_le - double precision 64bit floating-point number (little endian)
    • double_be - double precision 64bit floating-point number (big endian)
    • double_ne - double precision 64bit floating-point number (network endian)
  • Supports optionally skipping N bytes or reading at most N bytes of data.
  • Supports optional zero-padding of the data.
  • Supports omitting repeating rows with a *.
  • Supports grouping columns together like GNU hexdump -C.
  • Supports grouping characters together to align with the type's size.
  • Supports displaying characters inline like GNU hexdump -c.
  • Supports displaying UTF-8 characters or other character encodings.
  • Supports ANSI styling and highlighting.
  • Can hexdump any Object supporting the each_byte method.
  • Can send the hexdump output to any Object supporting the << method.
  • Makes {String}, {StringIO}, {IO}, {File} objects hexdumpable.
  • Fast-ish.

Requirements

Install

$ gem install hexdump

gemspec

gem.add_dependency 'hexdump', '~> 1.0'

Gemfile

gem 'hexdump', '~> 1.0'

Examples

require 'hexdump'

Hexdump.hexdump("hello\0")
# 00000000  68 65 6c 6c 6f 00                                |hello.|
# 00000006

Core Extensions

"hello\0".hexdump
# 00000000  68 65 6c 6c 6f 00                                |hello.|
# 00000006
File.hexdump("/bin/ls")
# ...

Output (file)

File.open('dump.txt','w') do |file|
  data.hexdump(output: file)
end

UTF-8

Hexdump.hexdump("\u8000" * 8, encoding: :utf8)
# 00000000  e8 80 80 e8 80 80 e8 80 80 e8 80 80 e8 80 80 e8  |耀耀耀耀耀.|
# 00000010  80 80 e8 80 80 e8 80 80                          |..耀耀|
# 00000018

Columns

Hexdump.hexdump('A' * 30, columns: 10)
# 00000000  41 41 41 41 41 41 41 41 41 41  |AAAAAAAAAA|
# *
# 0000001e

Repeating Columns

Hexdump.hexdump('A' * 30, columns: 10, repeating: true)
# 00000000  41 41 41 41 41 41 41 41 41 41  |AAAAAAAAAA|
# 0000000a  41 41 41 41 41 41 41 41 41 41  |AAAAAAAAAA|
# 00000014  41 41 41 41 41 41 41 41 41 41  |AAAAAAAAAA|
# 0000001e

Grouping Columns

Hexdump.hexdump("ABCD" * 8, columns: 16, group_columns: 4, repeating: true)
# 00000000  41 42 43 44  41 42 43 44  41 42 43 44  41 42 43 44  |ABCDABCDABCDABCD|
# 00000010  41 42 43 44  41 42 43 44  41 42 43 44  41 42 43 44  |ABCDABCDABCDABCD|
# 00000020

Grouping Chars

Hexdump.hexdump("ABCD" * 8, group_chars: 4)
# 00000000  41 42 43 44 41 42 43 44 41 42 43 44 41 42 43 44  |ABCD|ABCD|ABCD|ABCD|
# *
# 00000020

Grouping UTF-8 Chars

Hexdump.hexdump("\u8000" * 8, group_chars: 4, encoding: :utf8)
# 00000000  e8 80 80 e8 80 80 e8 80 80 e8 80 80 e8 80 80 e8  |耀.|...|.耀|耀.|
# 00000010  80 80 e8 80 80 e8 80 80                          |...|.耀|
# 00000018

Disable Chars

Hexdump.hexdump('A' * 30, chars_column: false)
00000000  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
00000010  41 41 41 41 41 41 41 41 41 41 41 41 41 41      
0000001e

Hexadecimal

Hexdump.hexdump("hello\0", base: 16)
# 00000000  68 65 6c 6c 6f 00                                |hello.|
# 00000006

Decimal

Hexdump.hexdump("hello\0", base: 10)
# 00000000  104 101 108 108 111   0                                          |hello.|
# 00000006

Octal

Hexdump.hexdump("hello\0", base: 8)
# 00000000  0150 0145 0154 0154 0157 0000                                                    |hello.|
# 00000006

Binary

Hexdump.hexdump("hello\0", base: 2)
# 00000000  01101000 01100101 01101100 01101100 01101111 00000000                                                                                            |hello.|
# 00000006

UInt Type

Hexdump.hexdump("ABCD" * 7, type: :uint32)
# 00000000  44434241 44434241 44434241 44434241  |ABCDABCDABCDABCD|
# 00000010  44434241 44434241 44434241           |ABCDABCDABCD|
# 0000001c

Little-endian

Hexdump.hexdump("ABCD" * 7, type: :uint32_le)
# 00000000  44434241 44434241 44434241 44434241  |ABCDABCDABCDABCD|
# 00000010  44434241 44434241 44434241           |ABCDABCDABCD|
# 0000001c

Big-endian

Hexdump.hexdump("ABCD" * 7, type: :uint32_be)
# 00000000  41424344 41424344 41424344 41424344  |ABCDABCDABCDABCD|
# 00000010  41424344 41424344 41424344           |ABCDABCDABCD|
# 0000001c

Int Type

Hexdump.hexdump([65535, -1].pack("LL"), type: :int32, base: 10)
# 00000000       65535         -1                          |........|
# 00000008

Char Type

Hexdump.hexdump("hello\0", type: :char)
# 00000000    h   e   l   l   o  \0                                          |hello.|
# 00000006

Float Type

Hexdump.hexdump([0.0, 1.0, -1.0, Float::NAN].pack('EEEE'), type: :float64_le)
# 00000000          0.000000e+00         1.000000e+00  |...............?|
# 00000010         -1.000000e+00                  NaN  |................|
# 00000020

Skipping Data

Hexdump.hexdump("GARBAGEabc123", offset: 7)
# 00000007  61 62 63 31 32 33                                |abc123|
# 0000000d

Zero-padding

Hexdump.hexdump(("ABCD" * 4) + "AB", type: :uint32_be, zero_pad: true)
# 00000000  41424344 41424344 41424344 41424344  |ABCDABCDABCDABCD|
# 00000010  41420000                             |AB..|
# 00000014

ANSI Styling

Hexdump.hexdump("ABCD", style: {index: :white, numeric: :green, chars: :cyan})

ANSI Highlighting

Hexdump.hexdump((0..255).map(&:chr).join, highlights: {
  index: {/00$/ => [:white, :bold]},
  numeric: {
    /^[8-f][0-9a-f]$/ => :faint,
    /f/  => :cyan,
    '00' => [:black, :on_red]
  },
  chars: {/[^\.]+/ => :green}
})

Block Configuration

Hexdump.hexdump("hello\0") do |hex|
  hex.type = :uint16_le
  hex.group_chars = :type
  # ...
end
# 00000000  6568 6c6c 006f                           |he|ll|o.|
# 00000006

Benchmarks

Benchmarks show hexdumping 1Mb of random data.

Ruby 2.7.4

                                                 user     system      total        real
Hexdump.hexdump(data)                        1.148697   0.025829   1.174526 (  1.183447)
Hexdump.hexdump(data, repeating: false)      1.050473   0.000000   1.050473 (  1.057167)
Hexdump.hexdump(data, chars_column: false)   0.878459   0.002912   0.881371 (  0.888779)
Hexdump.hexdump(data, columns: 256)          0.793922   0.008785   0.802707 (  0.810535)
Hexdump.hexdump(data, group_columns: 4)      1.309818   0.000000   1.309818 (  1.320721)
Hexdump.hexdump(data, group_chars: 4)        1.949181   0.000000   1.949181 (  1.975533)
Hexdump.hexdump(data, encoding: :utf8)       1.292495   0.000000   1.292495 (  1.302071)
Hexdump.hexdump(data, type: :char)           1.168044   0.000000   1.168044 (  1.177700)
Hexdump.hexdump(data, type: :uchar)          1.033165   0.000000   1.033165 (  1.041185)
Hexdump.hexdump(data, type: :int8)           1.310548   0.000000   1.310548 (  1.319847)
Hexdump.hexdump(data, type: :uint8)          1.035534   0.000000   1.035534 (  1.041428)
Hexdump.hexdump(data, type: :int16)          1.351306   0.009906   1.361212 (  1.370048)
Hexdump.hexdump(data, type: :int16_le)       1.320781   0.002981   1.323762 (  1.331747)
Hexdump.hexdump(data, type: :int16_be)       1.401554   0.003986   1.405540 (  1.414568)
Hexdump.hexdump(data, type: :int16_ne)       1.367864   0.000000   1.367864 (  1.376459)
Hexdump.hexdump(data, type: :uint16)         1.425247   0.003965   1.429212 (  1.438618)
Hexdump.hexdump(data, type: :uint16_le)      1.399240   0.002979   1.402219 (  1.411098)
Hexdump.hexdump(data, type: :uint16_be)      1.409289   0.006960   1.416249 (  1.424767)
Hexdump.hexdump(data, type: :uint16_ne)      1.288829   0.000001   1.288830 (  1.296091)
Hexdump.hexdump(data, type: :int32)          1.089239   0.000000   1.089239 (  1.094715)
Hexdump.hexdump(data, type: :int32_le)       1.429353   0.000003   1.429356 (  1.441620)
Hexdump.hexdump(data, type: :int32_be)       1.472933   0.000000   1.472933 (  1.486328)
Hexdump.hexdump(data, type: :int32_ne)       1.357824   0.000000   1.357824 (  1.369258)
Hexdump.hexdump(data, type: :uint32)         1.214704   0.000000   1.214704 (  1.222920)
Hexdump.hexdump(data, type: :uint32_le)      1.253424   0.000000   1.253424 (  1.262441)
Hexdump.hexdump(data, type: :uint32_be)      1.325268   0.000000   1.325268 (  1.335447)
Hexdump.hexdump(data, type: :uint32_ne)      1.314893   0.000819   1.315712 (  1.328889)
Hexdump.hexdump(data, type: :int64)          1.083071   0.000000   1.083071 (  1.092108)
Hexdump.hexdump(data, type: :int64_le)       1.076378   0.000000   1.076378 (  1.084785)
Hexdump.hexdump(data, type: :int64_be)       0.998069   0.000000   0.998069 (  1.005166)
Hexdump.hexdump(data, type: :int64_ne)       0.990422   0.000000   0.990422 (  1.005638)
Hexdump.hexdump(data, type: :uint64)         1.010946   0.000000   1.010946 (  1.018339)
Hexdump.hexdump(data, type: :uint64_le)      0.961576   0.000000   0.961576 (  0.967806)
Hexdump.hexdump(data, type: :uint64_be)      0.979367   0.000000   0.979367 (  0.985515)
Hexdump.hexdump(data, type: :uint64_ne)      1.017737   0.000000   1.017737 (  1.024689)
Hexdump.hexdump(data, type: :float32)        1.237278   0.000000   1.237278 (  1.245206)
Hexdump.hexdump(data, type: :float32_le)     1.233321   0.000000   1.233321 (  1.241154)
Hexdump.hexdump(data, type: :float32_be)     1.245740   0.000000   1.245740 (  1.253952)
Hexdump.hexdump(data, type: :float32_ne)     1.256216   0.000000   1.256216 (  1.264893)
Hexdump.hexdump(data, type: :float64)        1.122882   0.000000   1.122882 (  1.130954)
Hexdump.hexdump(data, type: :float64_le)     1.117593   0.000000   1.117593 (  1.125222)
Hexdump.hexdump(data, type: :float64_be)     1.139602   0.000000   1.139602 (  1.147980)
Hexdump.hexdump(data, type: :float64_ne)     1.142568   0.000000   1.142568 (  1.150949)

Ruby 3.0.2

                                                 user     system      total        real
Hexdump.hexdump(data)                        0.902383   0.046875   0.949258 (  0.953623)
Hexdump.hexdump(data, repeating: false)      0.892407   0.000046   0.892453 (  0.896401)
Hexdump.hexdump(data, chars_column: false)   0.705909   0.001029   0.706938 (  0.709924)
Hexdump.hexdump(data, columns: 256)          0.627444   0.009986   0.637430 (  0.640324)
Hexdump.hexdump(data, group_columns: 4)      1.081550   0.001041   1.082591 (  1.087987)
Hexdump.hexdump(data, group_chars: 4)        1.444519   0.000000   1.444519 (  1.452809)
Hexdump.hexdump(data, encoding: :utf8)       1.078177   0.000003   1.078180 (  1.082981)
Hexdump.hexdump(data, type: :char)           0.865217   0.000000   0.865217 (  0.868752)
Hexdump.hexdump(data, type: :uchar)          0.736559   0.000000   0.736559 (  0.739721)
Hexdump.hexdump(data, type: :int8)           1.042024   0.000000   1.042024 (  1.046687)
Hexdump.hexdump(data, type: :uint8)          0.917350   0.000005   0.917355 (  0.921428)
Hexdump.hexdump(data, type: :int16)          1.351638   0.004978   1.356616 (  1.363879)
Hexdump.hexdump(data, type: :int16_le)       1.315200   0.006944   1.322144 (  1.329052)
Hexdump.hexdump(data, type: :int16_be)       1.421759   0.005966   1.427725 (  1.435760)
Hexdump.hexdump(data, type: :int16_ne)       1.444364   0.001995   1.446359 (  1.454039)
Hexdump.hexdump(data, type: :uint16)         1.491169   0.001000   1.492169 (  1.500542)
Hexdump.hexdump(data, type: :uint16_le)      1.439111   0.000000   1.439111 (  1.447745)
Hexdump.hexdump(data, type: :uint16_be)      1.464961   0.000836   1.465797 (  1.473807)
Hexdump.hexdump(data, type: :uint16_ne)      1.407008   0.000808   1.407816 (  1.415236)
Hexdump.hexdump(data, type: :int32)          1.048519   0.000004   1.048523 (  1.053326)
Hexdump.hexdump(data, type: :int32_le)       1.080497   0.000000   1.080497 (  1.085598)
Hexdump.hexdump(data, type: :int32_be)       1.033985   0.000000   1.033985 (  1.038472)
Hexdump.hexdump(data, type: :int32_ne)       1.057491   0.000000   1.057491 (  1.062123)
Hexdump.hexdump(data, type: :uint32)         1.019488   0.000000   1.019488 (  1.023838)
Hexdump.hexdump(data, type: :uint32_le)      1.014077   0.000003   1.014080 (  1.018370)
Hexdump.hexdump(data, type: :uint32_be)      1.038020   0.000000   1.038020 (  1.042756)
Hexdump.hexdump(data, type: :uint32_ne)      1.047465   0.000000   1.047465 (  1.052377)
Hexdump.hexdump(data, type: :int64)          0.842281   0.000000   0.842281 (  0.845988)
Hexdump.hexdump(data, type: :int64_le)       0.840408   0.000000   0.840408 (  0.844103)
Hexdump.hexdump(data, type: :int64_be)       0.845470   0.000002   0.845472 (  0.849219)
Hexdump.hexdump(data, type: :int64_ne)       0.843975   0.000000   0.843975 (  0.847644)
Hexdump.hexdump(data, type: :uint64)         0.836761   0.000000   0.836761 (  0.840326)
Hexdump.hexdump(data, type: :uint64_le)      0.828863   0.000000   0.828863 (  0.832319)
Hexdump.hexdump(data, type: :uint64_be)      0.839492   0.000001   0.839493 (  0.843017)
Hexdump.hexdump(data, type: :uint64_ne)      0.843799   0.000000   0.843799 (  0.847764)
Hexdump.hexdump(data, type: :float32)        1.091306   0.000000   1.091306 (  1.096429)
Hexdump.hexdump(data, type: :float32_le)     1.077634   0.000000   1.077634 (  1.082633)
Hexdump.hexdump(data, type: :float32_be)     1.085840   0.000986   1.086826 (  1.092056)
Hexdump.hexdump(data, type: :float32_ne)     1.093757   0.000000   1.093757 (  1.099011)
Hexdump.hexdump(data, type: :float64)        0.873676   0.010942   0.884618 (  0.888978)
Hexdump.hexdump(data, type: :float64_le)     0.865006   0.003984   0.868990 (  0.873156)
Hexdump.hexdump(data, type: :float64_be)     0.879795   0.009947   0.889742 (  0.894389)
Hexdump.hexdump(data, type: :float64_ne)     0.876483   0.010934   0.887417 (  0.892222)

JRuby 9.2.19.0

                                                 user     system      total        real
Hexdump.hexdump(data)                        6.440000   0.260000   6.700000 (  1.990004)
Hexdump.hexdump(data, repeating: false)      1.920000   0.010000   1.930000 (  0.973891)
Hexdump.hexdump(data, chars_column: false)   1.680000   0.010000   1.690000 (  0.848573)
Hexdump.hexdump(data, columns: 256)          0.920000   0.010000   0.930000 (  0.703203)
Hexdump.hexdump(data, group_columns: 4)      2.070000   0.010000   2.080000 (  1.119408)
Hexdump.hexdump(data, group_chars: 4)        2.200000   0.010000   2.210000 (  1.427454)
Hexdump.hexdump(data, encoding: :utf8)       2.280000   0.010000   2.290000 (  1.148070)
Hexdump.hexdump(data, type: :char)           1.970000   0.020000   1.990000 (  1.022860)
Hexdump.hexdump(data, type: :uchar)          0.940000   0.000000   0.940000 (  0.780674)
Hexdump.hexdump(data, type: :int8)           1.580000   0.000000   1.580000 (  1.086830)
Hexdump.hexdump(data, type: :uint8)          0.980000   0.010000   0.990000 (  0.937851)
Hexdump.hexdump(data, type: :int16)          2.730000   0.030000   2.760000 (  1.571684)
Hexdump.hexdump(data, type: :int16_le)       1.620000   0.000000   1.620000 (  1.354835)
Hexdump.hexdump(data, type: :int16_be)       1.700000   0.010000   1.710000 (  1.430056)
Hexdump.hexdump(data, type: :int16_ne)       1.640000   0.000000   1.640000 (  1.437230)
Hexdump.hexdump(data, type: :uint16)         2.190000   0.100000   2.290000 (  1.801601)
Hexdump.hexdump(data, type: :uint16_le)      1.770000   0.010000   1.780000 (  1.585609)
Hexdump.hexdump(data, type: :uint16_be)      1.720000   0.000000   1.720000 (  1.555715)
Hexdump.hexdump(data, type: :uint16_ne)      1.760000   0.010000   1.770000 (  1.540340)
Hexdump.hexdump(data, type: :int32)          1.430000   0.000000   1.430000 (  1.133868)
Hexdump.hexdump(data, type: :int32_le)       1.060000   0.000000   1.060000 (  1.031721)
Hexdump.hexdump(data, type: :int32_be)       1.130000   0.010000   1.140000 (  1.096841)
Hexdump.hexdump(data, type: :int32_ne)       1.080000   0.000000   1.080000 (  1.074743)
Hexdump.hexdump(data, type: :uint32)         1.560000   0.010000   1.570000 (  1.053369)
Hexdump.hexdump(data, type: :uint32_le)      1.070000   0.000000   1.070000 (  1.001372)
Hexdump.hexdump(data, type: :uint32_be)      1.460000   0.020000   1.480000 (  1.080869)
Hexdump.hexdump(data, type: :uint32_ne)      1.120000   0.010000   1.130000 (  0.876941)
Hexdump.hexdump(data, type: :int64)          1.510000   0.010000   1.520000 (  0.865030)
Hexdump.hexdump(data, type: :int64_le)       0.860000   0.000000   0.860000 (  0.770903)
Hexdump.hexdump(data, type: :int64_be)       0.820000   0.000000   0.820000 (  0.768356)
Hexdump.hexdump(data, type: :int64_ne)       0.760000   0.010000   0.770000 (  0.752532)
Hexdump.hexdump(data, type: :uint64)         2.430000   0.000000   2.430000 (  1.011133)
Hexdump.hexdump(data, type: :uint64_le)      0.850000   0.010000   0.860000 (  0.823235)
Hexdump.hexdump(data, type: :uint64_be)      0.870000   0.000000   0.870000 (  0.822799)
Hexdump.hexdump(data, type: :uint64_ne)      0.900000   0.000000   0.900000 (  0.829247)
Hexdump.hexdump(data, type: :float32)        3.700000   0.020000   3.720000 (  1.862630)
Hexdump.hexdump(data, type: :float32_le)     1.430000   0.010000   1.440000 (  1.372024)
Hexdump.hexdump(data, type: :float32_be)     1.360000   0.010000   1.370000 (  1.333000)
Hexdump.hexdump(data, type: :float32_ne)     1.390000   0.000000   1.390000 (  1.354031)
Hexdump.hexdump(data, type: :float64)        2.830000   0.030000   2.860000 (  1.705892)
Hexdump.hexdump(data, type: :float64_le)     1.370000   0.000000   1.370000 (  1.356680)
Hexdump.hexdump(data, type: :float64_be)     1.430000   0.010000   1.440000 (  1.392404)
Hexdump.hexdump(data, type: :float64_ne)     1.380000   0.000000   1.380000 (  1.363983)

TruffleRuby 21.2.0.1

                                                 user     system      total        real
Hexdump.hexdump(data)                        7.456088   0.230339   7.686427 (  2.378998)
Hexdump.hexdump(data, repeating: false)      5.737137   0.150997   5.888134 (  1.781732)
Hexdump.hexdump(data, chars_column: false)   6.671704   0.064265   6.735969 (  2.054377)
Hexdump.hexdump(data, columns: 256)          4.711081   0.023574   4.734655 (  1.352932)
Hexdump.hexdump(data, group_columns: 4)      8.762291   0.133901   8.896192 (  2.711132)
Hexdump.hexdump(data, group_chars: 4)       13.382068   0.127633  13.509701 (  4.128705)
Hexdump.hexdump(data, encoding: :utf8)       8.591975   0.138969   8.730944 (  2.676283)
Hexdump.hexdump(data, type: :char)           6.455997   0.059446   6.515443 (  1.953656)
Hexdump.hexdump(data, type: :uchar)          6.201412   0.048587   6.249999 (  1.732655)
Hexdump.hexdump(data, type: :int8)           8.712725   0.095197   8.807922 (  2.587043)
Hexdump.hexdump(data, type: :uint8)          5.553536   0.074358   5.627894 (  1.786634)
Hexdump.hexdump(data, type: :int16)         11.300609   0.114115  11.414724 (  3.440795)
Hexdump.hexdump(data, type: :int16_le)       8.040891   0.060503   8.101394 (  2.388759)
Hexdump.hexdump(data, type: :int16_be)       6.602434   0.087225   6.689659 (  2.082091)
Hexdump.hexdump(data, type: :int16_ne)       5.448411   0.076425   5.524836 (  1.696039)
Hexdump.hexdump(data, type: :uint16)        10.081909   0.157579  10.239488 (  3.106461)
Hexdump.hexdump(data, type: :uint16_le)      6.847504   0.040543   6.888047 (  2.069546)
Hexdump.hexdump(data, type: :uint16_be)      6.730759   0.149299   6.880058 (  2.147346)
Hexdump.hexdump(data, type: :uint16_ne)      5.539179   0.108832   5.648011 (  1.747539)
Hexdump.hexdump(data, type: :int32)          7.998790   0.058401   8.057191 (  2.383304)
Hexdump.hexdump(data, type: :int32_le)       4.650657   0.081202   4.731859 (  1.412741)
Hexdump.hexdump(data, type: :int32_be)      11.538588   0.089259  11.627847 (  3.557763)
Hexdump.hexdump(data, type: :int32_ne)       9.605673   0.146677   9.752350 (  2.995870)
Hexdump.hexdump(data, type: :uint32)        10.404964   0.106136  10.511100 (  3.118580)
Hexdump.hexdump(data, type: :uint32_le)      4.851154   0.080325   4.931479 (  1.463532)
Hexdump.hexdump(data, type: :uint32_be)     11.293044   0.100121  11.393165 (  3.539708)
Hexdump.hexdump(data, type: :uint32_ne)      9.907893   0.122000  10.029893 (  3.165294)
Hexdump.hexdump(data, type: :int64)          9.103719   0.102995   9.206714 (  2.775106)
Hexdump.hexdump(data, type: :int64_le)       9.304751   0.180642   9.485393 (  2.922495)
Hexdump.hexdump(data, type: :int64_be)       7.166353   0.089344   7.255697 (  2.215438)
Hexdump.hexdump(data, type: :int64_ne)       6.874170   0.090186   6.964356 (  2.113975)
Hexdump.hexdump(data, type: :uint64)        12.997911   0.165758  13.163669 (  4.081488)
Hexdump.hexdump(data, type: :uint64_le)      8.949650   0.130855   9.080505 (  2.712645)
Hexdump.hexdump(data, type: :uint64_be)      8.948030   0.173500   9.121530 (  2.842953)
Hexdump.hexdump(data, type: :uint64_ne)      8.055399   0.153749   8.209148 (  2.547932)
Hexdump.hexdump(data, type: :float32)       14.345624   0.241224  14.586848 (  4.508393)
Hexdump.hexdump(data, type: :float32_le)    10.454524   0.103136  10.557660 (  3.112175)
Hexdump.hexdump(data, type: :float32_be)    11.073294   0.202252  11.275546 (  3.443881)
Hexdump.hexdump(data, type: :float32_ne)     9.990956   0.091216  10.082172 (  3.022276)
Hexdump.hexdump(data, type: :float64)       16.629231   0.279989  16.909220 (  5.163906)
Hexdump.hexdump(data, type: :float64_le)    13.761375   0.190385  13.951760 (  4.129403)
Hexdump.hexdump(data, type: :float64_be)    16.121047   0.277863  16.398910 (  5.019326)
Hexdump.hexdump(data, type: :float64_ne)     8.873162   0.068414   8.941576 (  4.748072)

Copyright

Copyright (c) 2011-2021 Hal Brodigan

See {file:LICENSE.txt} for details.