BT

MagLev Ruby VM agora disponível, traz a persistência GemStone para o Ruby

por Werner Schuster , traduzido por Christian Guimarães em 15 Dez 2009 |

MagLev é uma implementação da linguagem Ruby feita pela empresa GemStone sobre sua VM Smalltalk. GemStone/S, que é a VM Smalltalk da GemStone, está aí há décadas e é particularmente conhecida por sua capacidade, já bastante experimentada, de distribuição e persistência.

MagLev foi anunciado em 2008, e, desde então, a equipe tem estado bastante ocupada trabalhando no projeto. Depois de um período em uma versão alpha (privada), o gato saiu da saco: uma versão pública do MagLev está disponível, e inclui o código fonte do MagLev, que está hospedado no GitHub.

Para experimentar o MagLev, primeiro obtenha o código fonte com um rápido

git clone git://github.com/MagLev/maglev.git

seguido de um

./install.sh

no diretório do código fonte e siga as instruções que seguem.

Para iniciar o MagLev use o comando

rake maglev:start

para arrancar o sistema. Uma maneira rápida de rodar código Ruby é maglev-irb, que irá conectar com o backend do MagLev. Também estão disponíveis os comandos maglev-ruby e maglev-gem.

Com uma rápida olhada no diretório de exemplos encontra-se o hat_trick (truque da cartola) que o Avi Bryant mostrou na primeira demonstração do MagLev. Ele mostra os recursos de persistência, que permitem configurar um objeto em uma instância irb e então acessá-lo em outra instância.

Para reproduzir este exemplo, simplesmente inicie o MagLev e duas instâncias do maglev-irb. Para criar um objeto persistente, execute o trecho de código a seguir em uma instância do maglev-irb:

Maglev.persistent do
 Maglev::PERSISTENT_ROOT[:stuff] = ["hello world"]
end
Maglev.commit_transaction

Vá para a outra instância maglev-irb e execute:

Maglev::PERSISTENT_ROOT[:stuff]

isso irá retornar a string "hello world".

Obviamente, isto é uma demonstração bastante simples dos recursos de persistência; veja o link a seguir para maiores detalhes da API de persistência do MagLev.

Um exemplo ligeiramente mais envolvente é uma implementação PStore Ruby usando os recursos de persistência. Ela mostra como os recursos de persistência do GemStone torna fácil a manutenção de todo o grafo de objetos persistentes sem ter que lida com um ORM.

Enquanto Rails ainda não é suportado pelo MagLev, exemplos funcionais de Rack e Sinatra estão disponíveis.

Um Trac público para o MagLev está disponível para acompanhar o progresso. Para questões de compatibilidade, este gráfico mostra o números de RubySpecs testadas, enquanto que links para resultados detalhados estão disponíveis também.

Nenhum detalhe sobre questões de licensa do MagLev parecem estar disponíveis, mas a GemStone oferece versões grátis, por exemplo, da GemStone/S que acompanha o framework web Seaside, que é free até 4 GB de dados.

Enquanto, hoje em dia, existe muito burburinho em torno dos bancos de dados NoSQL, a GemStone/S é uma solução bastante experimentada que está no mercado há muito tempo. MagLev fortemente integra estes recursos com Ruby. Qual a sua opinião - irá experimentar o MagLev?

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT