{"id":21815552,"url":"https://github.com/arbox/ruby-interoperability","last_synced_at":"2025-04-14T00:41:57.465Z","repository":{"id":56299023,"uuid":"88167367","full_name":"arbox/ruby-interoperability","owner":"arbox","description":"Ruby Mixture with other Programming Languages","archived":false,"fork":false,"pushed_at":"2020-11-16T07:05:07.000Z","size":15,"stargazers_count":39,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-27T14:52:37.134Z","etag":null,"topics":["c","inter-process-communication","java","r","ruby","rubydatascience","rubyml","rubynlp","rust"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arbox.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-13T13:24:39.000Z","updated_at":"2024-08-11T18:43:17.000Z","dependencies_parsed_at":"2022-08-15T16:10:52.383Z","dependency_job_id":null,"html_url":"https://github.com/arbox/ruby-interoperability","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbox%2Fruby-interoperability","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbox%2Fruby-interoperability/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbox%2Fruby-interoperability/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbox%2Fruby-interoperability/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arbox","download_url":"https://codeload.github.com/arbox/ruby-interoperability/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248804719,"owners_count":21164127,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","inter-process-communication","java","r","ruby","rubydatascience","rubyml","rubynlp","rust"],"created_at":"2024-11-27T15:19:44.866Z","updated_at":"2025-04-14T00:41:57.442Z","avatar_url":"https://github.com/arbox.png","language":"Ruby","readme":"[[RubyNLP](https://github.com/arbox/nlp-with-ruby) |\n [RubyDataScience](https://github.com/arbox/data-science-with-ruby) |\n [RubyML](https://github.com/arbox/machine-learning-with-ruby)]\n\n\n**The list is under heavy construction!**\n\n# Ruby communicates with other Languages\n\nRuby Mixture with other Programming Languages\n\n\u003c!-- toc --\u003e\n\n- [Extending Ruby](#extending-ruby)\n  * [C/C++](#c/c)\n  * [GNU Octave](#gnu-octave)\n  * [Go](#go)\n  * [Java](#java)\n  * [JavaScript](#javascript)\n  * [Julia](#julia)\n  * [Nim](#nim)\n  * [Python](#python)\n  * [R](#r)\n  * [Rust](#rust)\n- [Embedding Ruby](#embedding-ruby)\n- [Inter-process Communication](#inter-process-communication)\n- [Crosscompilation](#crosscompilation)\n- [License](#license)\n\n\u003c!-- tocstop --\u003e\n\n## Extending Ruby\n\n### C/C++\n\n- https://github.com/unak/fiddley\n- [The Definitive Guide to Ruby's C API](https://silverhammermba.github.io/emberb/) -\n  Modern Reference and Tutorial on Embedding and Extending Ruby using C programming language.\n- [Ruby Bindings via FFI \u0026 Extensions via MKMF](https://medium.com/stuart-engineering/ruby-bindings-and-extensions-91c794eb9acd)\n- https://www.amberbit.com/blog/2014/6/12/calling-c-cpp-from-ruby/\n- [rice](https://github.com/jasonroelofs/rice) -\n  Ruby Interface for C++ Extensions.\n- _Creating Ruby native extensions_ by [Vinicius Stock](https://github.com/vinistock)\n  \u003csup\u003e[[post](https://dev.to/vinistock/creating-ruby-native-extensions-kg1)]\u003c/sup\u003e\n- https://blog.jez.io/linkers-ruby-c-exts/\n\n### GNU Octave\n\n- [octave-ruby](https://github.com/daikini/octave-ruby) -\n  Ruby interface to the Octave interpreted language. \u003csup\u003e[[dep: GNU Octave](#octave)]\u003c/sup\u003e\n\n### Go\n\n- http://rubykaigi.org/2015/presentations/mmasaki/\n- https://c7.se/go-and-ruby-ffi/\n\n### Java\n\n- [rjb](https://github.com/arton/rjb) -\n  Ruby-Java bridge for the CRuby implementation.\n\n### JavaScript\n\n- https://github.com/rails/execjs\n- https://github.com/cowboyd/libv8\n- https://readysteadycode.com/howto-execute-javascript-code-with-ruby\n\n### Julia\n\n- https://github.com/mrkn/ruby-julia\n\n### Nim\n\n- http://bootstrap.me.uk/programming-languages/2017/07/09/nim-for-the-discerning-rubyist.html\n\n### Python\n\n- https://github.com/mrkn/pycall.rb\n- https://github.com/raineszm/rubypython\n- https://github.com/steeve/rupy\n- https://github.com/whymirror/unholy\n\n- [RbCall](https://github.com/yohm/rb_call) - calling Ruby from Python processes.\n\n### R\n\n- https://github.com/mrkn/rcall\n- [rinruby](https://github.com/clbustos/rinruby) -\n  integrates the R interpreter in Ruby, making R's statistical routines and\n  graphics available within Ruby. \u003csup\u003eR\u003c/sup\u003e\n- https://github.com/alexgutteridge/rsruby\n- https://github.com/clbustos/Rserve-Ruby-client\n- https://github.com/jtprince/rserve-simpler\n\n### Rust\n\n- http://undefined-reference.org/2016/05/14/writing-rubygem-in-rust.html\n- https://github.com/steveklabnik/rust_example\n- https://forums.sketchup.com/t/native-ruby-extension-in-rust/26705\n- https://github.com/d-unseductable/ruru\n- https://usehelix.com/\n- http://rubykaigi.org/2015/presentations/wycats_chancancode/\n- https://deliveroo.engineering/2019/02/14/moving-from-ruby-to-rust.html\n- https://samphippen.com/minimum-viable-gem-free-calling-rust-from-ruby-example/\n\n### WebAssembly\n\n- https://github.com/wasmerio/ruby-ext-wasm/\n\n## Embedding Ruby\n\n- [mruby](https://github.com/mruby/mruby) -\n  Lightweight embeddable Ruby implementation.\n\n## Inter-process Communication\n\n- []() -\n  xxx.\n\n## Crosscompilation\n\n- https://github.com/opal/opal\n\n## License\n\n[![Creative Commons Zero 1.0](http://mirrors.creativecommons.org/presskit/buttons/80x15/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/) `Ruby Interoperability` by [Andrei Beliankou](https://github.com/arbox) and\n[Contributors](https://github.com/arbox/ruby-interoperability/graphs/contributors).\n\nTo the extent possible under law, the person who associated CC0 with\n`Ruby Interoperability` has waived all copyright and related or neighboring rights\nto `Ruby Interoperability`.\n\nYou should have received a copy of the CC0 legalcode along with this\nwork. If not, see \u003chttps://creativecommons.org/publicdomain/zero/1.0/\u003e.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbox%2Fruby-interoperability","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farbox%2Fruby-interoperability","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbox%2Fruby-interoperability/lists"}