A summary of data about the Ruby ecosystem.

https://github.com/Homebrew/ruby-macho

🔩 A pure-Ruby library for parsing Mach-O files.
https://github.com/Homebrew/ruby-macho

Keywords

apple homebrew mach macos ruby ruby-gem ruby-library

Keywords from Contributors

sorbet rubygems feature-flag repl pry debugger feature-toggle feature oauth2-server oauth2-provider

Last synced: about 11 hours ago
JSON representation

Repository metadata

🔩 A pure-Ruby library for parsing Mach-O files.

README.md

ruby-macho

Gem Version
CI
Coverage Status

A Ruby library for examining and modifying Mach-O files.

What is a Mach-O file?

The Mach-O file format is used by macOS
and iOS (among others) as a general purpose binary format for object files,
executables, dynamic libraries, and so forth.

Installation

ruby-macho can be installed via RubyGems:

$ gem install ruby-macho

Documentation

Full documentation is available on RubyDoc.

A quick example of what ruby-macho can do:

require 'macho'

file = MachO::MachOFile.new("/path/to/my/binary")

# get the file's type (object, dynamic lib, executable, etc)
file.filetype # => :execute

# get all load commands in the file and print their offsets:
file.load_commands.each do |lc|
  puts "#{lc.type}: offset #{lc.offset}, size: #{lc.cmdsize}"
end

# access a specific load command
lc_vers = file[:LC_VERSION_MIN_MACOSX].first
puts lc_vers.version_string # => "10.10.0"

What works?

  • Reading data from x86/x86_64/PPC Mach-O files
  • Changing the IDs of Mach-O and Fat dylibs
  • Changing install names in Mach-O and Fat files
  • Adding, deleting, and modifying rpaths.

What needs to be done?

  • Unit and performance testing.

Contributing, setting up overcommit and the linters

In order to keep the repo, docs and data tidy, we use a tool called overcommit
to connect up the git hooks to a set of quality checks. The fastest way to get setup is to run the following to make
sure you have all the tools:

gem install overcommit bundler
bundle install
overcommit --install

Attribution

License

ruby-macho is licensed under the MIT License.

For the exact terms, see the license file.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 4 days ago

Total Commits: 1,104
Total Committers: 20
Avg Commits per committer: 55.2
Development Distribution Score (DDS): 0.615

Commits in past year: 168
Committers in past year: 5
Avg Commits per committer in past year: 33.6
Development Distribution Score (DDS) in past year: 0.268

Name Email Commits
dependabot[bot] 4****] 425
William Woodruff w****m@t****m 329
dependabot-preview[bot] 2****] 159
BrewTestBot 1****t 73
dependabot[bot] s****t@d****m 43
Martin Afanasjew m****n@a****e 22
Mike McQuaid m****e@m****m 13
Bo Anderson m****l@b****e 7
Carlo Cabrera 3****b 7
BrewTestBot h****t@l****g 5
Rick Mark r****k@o****m 5
Kevin a****k@g****m 4
Misty De Meo m****o@g****m 3
Patrick Linnane p****k@l****o 3
Andrew Nesbitt a****z@g****m 1
Branch Vincent b****t@g****m 1
Jonathan Chang j****1@g****m 1
Rylan Polster r****r@g****m 1
Thierry Moisan t****n@g****m 1
leonklingele g****t@l****e 1

Committer domains:


Issue and Pull Request metadata

Last synced: 3 days ago

Total issues: 12
Total pull requests: 716
Average time to close issues: almost 3 years
Average time to close pull requests: about 16 hours
Total issue authors: 3
Total pull request authors: 10
Average comments per issue: 1.92
Average comments per pull request: 0.18
Merged pull request: 626
Bot issues: 4
Bot pull requests: 567

Past year issues: 0
Past year pull requests: 274
Past year average time to close issues: N/A
Past year average time to close pull requests: about 7 hours
Past year issue authors: 0
Past year pull request authors: 5
Past year average comments per issue: 0
Past year average comments per pull request: 0.07
Past year merged pull request: 243
Past year bot issues: 0
Past year bot pull requests: 215

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/Homebrew/ruby-macho

Top Issue Authors

  • woodruffw (7)
  • dependabot[bot] (4)
  • abarisain (1)

Top Pull Request Authors

  • dependabot[bot] (567)
  • BrewTestBot (97)
  • woodruffw (18)
  • Bo98 (12)
  • p-linnane (6)
  • apainintheneck (4)
  • Moisan (4)
  • carlocab (3)
  • MikeMcQuaid (3)
  • andrew (2)

Top Issue Labels

  • help wanted (6)
  • enhancement (4)
  • dependencies (4)
  • ruby (3)
  • long-term (2)
  • outdated (2)
  • github_actions (2)
  • bug (2)
  • test-suite (2)
  • optimization (1)

Top Pull Request Labels

  • dependencies (565)
  • ruby (396)
  • github_actions (188)
  • outdated (177)
  • enhancement (5)
  • test-suite (1)
  • Stale (1)
  • in progress (1)

Package metadata

gem.coop: ruby-macho

A library for viewing and manipulating Mach-O files in Ruby.

  • Homepage: https://github.com/Homebrew/ruby-macho
  • Documentation: http://www.rubydoc.info/gems/ruby-macho/
  • Licenses: MIT
  • Latest release: 4.1.0 (published over 1 year ago)
  • Last Synced: 2025-12-09T10:06:21.751Z (about 23 hours ago)
  • Versions: 39
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 91,021,594 Total
  • Docker Downloads: 44,247,205
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 0.228%
    • Downloads: 0.281%
    • Docker downloads count: 0.631%
  • Maintainers (2)
rubygems.org: ruby-macho

A library for viewing and manipulating Mach-O files in Ruby.

  • Homepage: https://github.com/Homebrew/ruby-macho
  • Documentation: http://www.rubydoc.info/gems/ruby-macho/
  • Licenses: MIT
  • Latest release: 4.1.0 (published over 1 year ago)
  • Last Synced: 2025-12-09T07:20:08.444Z (1 day ago)
  • Versions: 39
  • Dependent Packages: 10
  • Dependent Repositories: 26,346
  • Downloads: 91,012,882 Total
  • Docker Downloads: 44,247,205
  • Rankings:
    • Dependent repos count: 0.219%
    • Downloads: 0.336%
    • Docker downloads count: 0.871%
    • Dependent packages count: 1.745%
    • Average: 1.855%
    • Stargazers count: 3.772%
    • Forks count: 4.188%
  • Maintainers (2)
proxy.golang.org: github.com/homebrew/ruby-macho

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/homebrew/ruby-macho#section-documentation
  • Licenses: mit
  • Latest release: v4.1.0+incompatible (published over 1 year ago)
  • Last Synced: 2025-12-07T21:03:22.084Z (2 days ago)
  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Stargazers count: 3.434%
    • Forks count: 3.769%
    • Average: 6.895%
    • Dependent packages count: 9.576%
    • Dependent repos count: 10.802%
proxy.golang.org: github.com/Homebrew/ruby-macho

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/Homebrew/ruby-macho#section-documentation
  • Licenses: mit
  • Latest release: v4.1.0+incompatible (published over 1 year ago)
  • Last Synced: 2025-12-07T21:03:22.148Z (2 days ago)
  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Stargazers count: 3.434%
    • Forks count: 3.769%
    • Average: 6.895%
    • Dependent packages count: 9.576%
    • Dependent repos count: 10.802%

Dependencies

Gemfile rubygems
  • benchmark-ips >= 0 development
  • codecov >= 0 development
  • minitest >= 0 development
  • overcommit >= 0 development
  • rake >= 0 development
  • rubocop >= 0 development
Gemfile.lock rubygems
  • ast 2.4.2
  • benchmark-ips 2.10.0
  • childprocess 4.1.0
  • codecov 0.6.0
  • docile 1.4.0
  • iniparse 1.5.0
  • json 2.6.2
  • minitest 5.16.2
  • overcommit 0.59.1
  • parallel 1.22.1
  • parser 3.1.2.0
  • rainbow 3.1.1
  • rake 13.0.6
  • regexp_parser 2.5.0
  • rexml 3.2.5
  • rubocop 1.31.2
  • rubocop-ast 1.19.1
  • ruby-progressbar 1.11.0
  • simplecov 0.21.2
  • simplecov-html 0.12.3
  • simplecov_json_formatter 0.1.4
  • unicode-display_width 2.2.0
.github/workflows/tests.yml actions
  • actions/checkout main composite
  • ruby/setup-ruby v1 composite
ruby-macho.gemspec rubygems
.github/workflows/stale-issues.yml actions
  • actions/stale 5f858e3efba33a5ca4407a664cc011ad407f2008 composite
.github/workflows/release.yml actions
  • actions/checkout 08c6903cd8c0fde910a37f88322edcfb5dd907a8 composite
  • ruby/setup-ruby d5126b9b3579e429dd52e51e68624dda2e05be25 composite
  • rubygems/release-gem 1c162a739e8b4cb21a676e97b087e8268d8fc40b composite
.github/workflows/actionlint.yml actions
  • Homebrew/actions/setup-homebrew main composite
  • actions/checkout 1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 composite
  • actions/download-artifact 018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 composite
  • actions/upload-artifact 330a01c490aca151604b8cf639adc76d48f6c5d4 composite
  • github/codeql-action/upload-sarif fdbfb4d2750291e159f0156def62b853c2798ca2 composite
Brewfile homebrew
  • ruby *

Score: 27.968550652011643