[フレーム]
BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Unlock the full InfoQ experience

Unlock the full InfoQ experience by logging in! Stay updated with your favorite authors and topics, engage with content, and download exclusive resources.

Login
or

Não tem uma conta no InfoQ?

Cadastre-se agora!
  • Siga seus tópicos e editores favoritosAcompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.
  • Mais interação, mais personalizaçãoCrie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.
  • Fique por dentro das novidades!Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

Tópicos

Escolha a região

Início Notícias Ruby FFI traz acesso às bibliotecas nativas para JRuby, MRI

Ruby FFI traz acesso às bibliotecas nativas para JRuby, MRI

16 dez. 2008 1 min(s) de Leitura

traduzido por

O MRI e o Rubinius tem suportado extensões nativas do Ruby, que permitem código nativo interagir com código Ruby e com o interpretador Ruby ou VM. O Ruby 1.8.0 introduziu a Ruby/DL que permite carregar bibliotecas compartilhadas e chamar as funções fornecidas a partir de código Ruby. A documentação da Ruby/DL mostra como importar funções, como trabalhar e mapear tipos Ruby para tipos C, etc. A Ruby/DL também fornece duas formas de comunicação com callbacks, ex: é possível criar um bloco Ruby para uma função C que espera um ponteiro de função.

Rubinius introduziu sua própria interface com a Foreign Function Interface (FFI) que lembra um pouco a Ruby/DL, embora a API da FFI pareça um pouco diferente, ex: ela usa simbolos Ruby e literais de array para assinatura de tipos ao invés de Strings de código C ou um formato de especificador de tipo customizadocomo a Ruby/DL faz.

Mais cedo nesse ano jruby-ffi, contruído sobre JNA, foi introduzido (JRuby não tem suporte ao Ruby/DL).

Enquanto o suporte no Rubinius e no JRuby estavam disponíveis, isso significava uma grande parte do mundo Ruby que utiliza MRI estava usando Ruby/DL ou criando outras maneiras de usar bibliotecas compartilhadas. Para corrigir isso, o projeto ruby-ffi foi criado pelo Wayne Meissner (que já criara o jruby-ffi) e agora provê a mesma interface FFI como o Rubiniuspara JRuby, Ruby 1.8.x e Ruby 1.9.x. Com isso, é possível usar o mesmo código Ruby através de todas essas implementações Ruby para acessar bibliotecas compartilhadas.

O Ruby FFI 0.2.0 está disponível, a instalação é possível com gem install ffi. A Documentação está disponível no wiki do projeto, um bom lugar para começar é a página de exemplos. Charles Nutter fornece algumas explicações adicionais e exemplos utilizando FFI.

Avalie esse artigo

Relevância
Estilo/Redação
  • Conteúdo editorial relacionado

    • Conteúdo relacionado de patrocinadores

Conteúdo educacional

InfoQ Brasil Newsletter

Receba semanalmente um resumo dos conteúdos publicados. Junte-se a uma comunidade com dezenas de milhares de profissionais de alta senioridade. Veja um exemplo

Nós prezamos pela sua privacidade.

BT

AltStyle によって変換されたページ (->オリジナル) /