https://github.com/ffi/ffi-compiler
https://github.com/ffi/ffi-compiler
Keywords from Contributors
ruby-gem
Last synced: about 21 hours ago
JSON representation
Repository metadata
- Host: GitHub
- URL: https://github.com/ffi/ffi-compiler
- Owner: ffi
- License: apache-2.0
- Created: 2013-01-15T20:01:02.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2026-05-02T20:28:18.000Z (21 days ago)
- Last Synced: 2026-05-23T01:42:00.578Z (about 23 hours ago)
- Language: Ruby
- Size: 57.6 KB
- Stars: 37
- Watchers: 7
- Forks: 13
- Open Issues: 2
- Releases: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
ffi-compiler is a ruby library for automating compilation of native libraries for use with ffi
To use, define your own ruby->native API using ffi, implement it in C, then use ffi-compiler to compile it.
Example
Directory layout
lib
|- example
|- example.rb
ext
|- example.c
|- Rakefile
example.gemspec
lib/example/example.rb
require 'ffi'
require 'ffi-compiler/loader'
module Example
extend FFI::Library
ffi_lib FFI::Compiler::Loader.find('example')
# example function which takes no parameters and returns long
attach_function :example, [], :long
end
ext/example.c
long
example(void)
{
return 0xdeadbeef;
}
ext/Rakefile
require 'ffi-compiler/compile_task'
FFI::Compiler::CompileTask.new('example') do |c|
c.have_header?('stdio.h', '/usr/local/include')
c.have_func?('puts')
c.have_library?('z')
end
example.gemspec
Gem::Specification.new do |s|
s.extensions << 'ext/Rakefile'
s.name = 'example'
s.version = '0.0.1'
s.email = 'ffi-example'
s.files = %w(example.gemspec) + Dir.glob("{lib,spec,ext}/**/*")
s.add_dependency 'rake'
s.add_dependency 'ffi-compiler'
end
Build gem and install it
gem build example.gemspec && gem install example-0.0.1.gem
Successfully built RubyGem
Name: example
Version: 0.0.1
File: example-0.0.1.gem
Building native extensions. This could take a while...
Successfully installed example-0.0.1
Test it
$ irb
2.0.0dev :001 > require 'example/example'
=> true
2.0.0dev :002 > puts "Example.example=#{Example.example.to_s(16)}"
Example.example=deadbeef
=> nil
Owner metadata
- Name: ffi
- Login: ffi
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/111990?v=4
- Repositories: 5
- Last ynced at: 2024-03-25T22:20:24.330Z
- Profile URL: https://github.com/ffi
GitHub Events
Total
- Pull request event: 3
- Fork event: 2
- Watch event: 6
- Issue comment event: 2
- Push event: 1
- Pull request review event: 4
- Pull request review comment event: 3
Last Year
- Pull request event: 1
- Fork event: 1
- Watch event: 1
- Issue comment event: 1
- Pull request review event: 4
- Pull request review comment event: 3
Committers metadata
Last synced: about 23 hours ago
Total Commits: 72
Total Committers: 10
Avg Commits per committer: 7.2
Development Distribution Score (DDS): 0.514
Commits in past year: 4
Committers in past year: 2
Avg Commits per committer in past year: 2.0
Development Distribution Score (DDS) in past year: 0.25
| Name | Commits | |
|---|---|---|
| Wayne Meissner | w****r@g****m | 35 |
| Dāvis Mosāns | d****h@g****m | 27 |
| Alexey Vasiliev | l****a@g****m | 2 |
| Stephen von Takach | s****e@c****e | 2 |
| matoro | m****o | 1 |
| Nick Vladimiroff | n****f@g****m | 1 |
| Luis Lavena | l****a@g****m | 1 |
| Levente Polyak | l****e@l****t | 1 |
| Hugo Frappier | h****o@c****m | 1 |
| Alexey Morozov | a****s@g****m | 1 |
Committer domains:
- cekoya.com: 1
- leventepolyak.net: 1
- cotag.me: 1
Issue and Pull Request metadata
Last synced: 18 days ago
Total issues: 13
Total pull requests: 18
Average time to close issues: 10 months
Average time to close pull requests: 4 months
Total issue authors: 12
Total pull request authors: 11
Average comments per issue: 2.69
Average comments per pull request: 2.94
Merged pull request: 12
Bot issues: 0
Bot pull requests: 0
Past year issues: 1
Past year pull requests: 3
Past year average time to close issues: N/A
Past year average time to close pull requests: 5 months
Past year issue authors: 1
Past year pull request authors: 2
Past year average comments per issue: 1.0
Past year average comments per pull request: 2.67
Past year merged pull request: 1
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- frahugo (2)
- spacewander (1)
- uvlad7 (1)
- utkarsh2102 (1)
- acaloiaro (1)
- jirutka (1)
- Envek (1)
- ololobus (1)
- azimux (1)
- SergeyKanzhelev (1)
- le0pard (1)
- ntkme (1)
Top Pull Request Authors
- davispuh (6)
- jonbarlo (2)
- ntkme (2)
- anthraxx (1)
- alexeymorozov (1)
- matoro (1)
- le0pard (1)
- acaloiaro (1)
- luislavena (1)
- nvladimiroff (1)
- frahugo (1)
Top Issue Labels
Top Pull Request Labels
Package metadata
- Total packages: 11
-
Total downloads:
- rubygems: 337,876,077 total
- Total docker downloads: 3,134,531,440
- Total dependent packages: 28 (may contain duplicates)
- Total dependent repositories: 7,509 (may contain duplicates)
- Total versions: 37
- Total maintainers: 4
gem.coop: ffi-compiler
Ruby FFI library
- Homepage: https://github.com/ffi/ffi-compiler
- Documentation: http://www.rubydoc.info/gems/ffi-compiler/
- Licenses: Apache-2.0
- Latest release: 1.4.2 (published 21 days ago)
- Last Synced: 2026-05-23T03:30:49.117Z (about 21 hours ago)
- Versions: 14
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 168,989,002 Total
- Docker Downloads: 1,567,265,720
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.056%
- Docker downloads count: 0.063%
- Downloads: 0.159%
- Maintainers (4)
rubygems.org: ffi-compiler
Ruby FFI library
- Homepage: https://github.com/ffi/ffi-compiler
- Documentation: http://www.rubydoc.info/gems/ffi-compiler/
- Licenses: Apache-2.0
- Latest release: 1.4.2 (published 21 days ago)
- Last Synced: 2026-05-22T04:01:10.635Z (2 days ago)
- Versions: 14
- Dependent Packages: 28
- Dependent Repositories: 7,509
- Downloads: 168,887,075 Total
- Docker Downloads: 1,567,265,720
-
Rankings:
- Docker downloads count: 0.084%
- Downloads: 0.196%
- Dependent repos count: 0.372%
- Average: 0.376%
- Dependent packages count: 0.851%
- Maintainers (4)
ubuntu-24.04: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Licenses:
- Latest release: 1.0.1-4 (published 4 months ago)
- Last Synced: 2026-03-06T15:59:07.670Z (3 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-20.04: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Licenses:
- Latest release: 1.0.1-3 (published 3 months ago)
- Last Synced: 2026-03-13T20:21:57.306Z (2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-12: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Documentation: https://packages.debian.org/bookworm/ruby-ffi-compiler
- Licenses:
- Latest release: 1.0.1-4 (published 3 months ago)
- Last Synced: 2026-03-13T23:43:16.334Z (2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-23.10: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Licenses:
- Latest release: 1.0.1-4 (published 3 months ago)
- Last Synced: 2026-03-14T03:13:35.973Z (2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-11: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Documentation: https://packages.debian.org/bullseye/ruby-ffi-compiler
- Licenses:
- Latest release: 1.0.1-4 (published 3 months ago)
- Last Synced: 2026-03-14T06:22:44.480Z (2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-23.04: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Licenses:
- Latest release: 1.0.1-4 (published 3 months ago)
- Last Synced: 2026-03-11T14:11:59.143Z (2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-24.10: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Licenses:
- Latest release: 1.0.1-4 (published 3 months ago)
- Last Synced: 2026-03-09T17:05:17.571Z (3 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-22.04: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Licenses:
- Latest release: 1.0.1-4 (published 3 months ago)
- Last Synced: 2026-03-13T22:42:03.733Z (2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-13: ruby-ffi-compiler
- Homepage: https://github.com/ffi/ffi-compiler
- Documentation: https://packages.debian.org/trixie/ruby-ffi-compiler
- Licenses:
- Latest release: 1.0.1-4 (published 3 months ago)
- Last Synced: 2026-03-14T18:09:09.019Z (2 months ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
Dependencies
- rspec >= 0 development
- ffi-compiler >= 0.0.2
- rake >= 0
- rspec >= 0 development
- rubygems-tasks >= 0 development
- ffi >= 1.0.0
- rake >= 0
- bundler 2.4.12
- diff-lcs 1.5.0
- ffi 1.15.5
- ffi-compiler 1.2.0
- io-console 0.6.0
- irb 1.6.4
- rake 13.0.6
- reline 0.3.3
- rspec 3.12.0
- rspec-core 3.12.2
- rspec-expectations 3.12.3
- rspec-mocks 3.12.5
- rspec-support 3.12.0
- rubygems-tasks 0.2.5
Score: 27.934263174447473