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?

Avalie esse artigo

Relevância
Estilo/Redação

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 mensagens dessa discussão
Comentários da comunidade

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

Receber mensagens dessa discussão

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

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.