Anyolite 1.0.0

After nearly two years it is finally time for the first full release of Anyolite!

Anyolite (https://github.com/Anyolite/anyolite) is a Crystal shard that includes a Ruby interpreter (either mruby or regular Ruby) into Crystal and allows for binding Crystal classes and functions directly to Ruby.

You can bind entire module hierarchies to Ruby with one single code line, you can call Ruby functions and manipulate Ruby objects from Crystal, and even share objects between both languages without worrying about memory leaks or Garbage Collector clashes. Anyolite helps you focus on the more important tasks instead of struggling with the mruby/Ruby API.

It is also possible to compile entire Ruby scripts to bytecode and even include them into your executable, all at compiletime!

The latest releases mostly provided bugfixes, better code quality and a small Wiki at https://github.com/Anyolite/anyolite/wiki. If you want to test Anyolite, there is also a small demo console game at https://github.com/Anyolite/ScapoLite, which uses many features of Anyolite.

Generally, Anyolite should be a perfect tool for scripting utilities in games, science or other applications, as it combines the performance of Crystal with the flexibility of Ruby, wherever you need it, without boilerplate code.

If you have any questions about Anyolite, feel free to ask!

28 Likes

Congrats on this milestone!!

2 Likes

Amazing!!

1 Like

Awesome!

1 Like

This is huge and opens a lot of possibilities, integrations and use-cases with Crystal and Ruby! Huge milestone!

1 Like

Help please. I submitted two issues, one to having difficulty running the tests in a new clone of the repo · Issue #36 · Anyolite/anyolite · GitHub and one at anyolite 1,1,0 incompatibility? · Issue #1 · Anyolite/ScapoLite · GitHub. Thanks

2 Likes

Just a quick question (I haven’t checked your github yet) : Can it be done the other way around, we use Ruby libraries in Crystal?"

Yes, this should be possible!

There are currently some limitations to this (you effectively have to embed the Ruby interpreter into your project and then install the gems), but other wise this should work perfectly fine.