Search code examples
haxeopenflhaxelib

What exactly is lime, lime-tools, aether, etc


I understand the overall concept of the Haxe programming language and OpenFL, but I'm having a lot of trouble understanding the purpose of these various libraries and how they relate to each other and which ones are deprecated.

I've read that lime-tools is deprecated and became aether. I've read that aether is deprecated and became lime-tools. And I've read that both are deprecated and became lime. Upon writing this I've now also read that aether has been reintroduced.

I also don't understand the difference between lime and openfl itself as the commands seem to be identical; do they have different processes in accomplishing the same thing?

This has been an issue I've returned to a number of times in my attempt to get up to speed on the current state of Haxe development.


Solution

  • lime-tools and aether are both deprecated as of the 2.0.5 version of lime.

    Originally lime-tools was called haxe-tools because the project format could be used for any development in Haxe. The Haxe Foundation suggested that it be changed because it wasn't an "officially" supported tool and thus lime-tools was created. It was kept separate from lime in hopes that it could still be used by someone not using lime or openfl.

    During the development of lime 2.0 there was still discussion on whether to keep the tools separate or integrate them directly into lime. The decision was made to keep the tools generic enough for any Haxe development so lime-tools was renamed aether in the idea that the new name would be considered separate from lime. For a few releases aether was required to test/build lime and openfl projects until Joshua Granick (the primary maintainer of openfl and lime) decided to merge the tools with lime to simplify the installation process.

    So as it currently stands lime contains all of the code from lime-tools and aether. You should use lime <command> <target> from a terminal to build/test/etc a project. lime also contains code to create an OpenGL context, handle input, and play audio. openfl is simply the layer on top of lime that acts as a replacement API for Flash and is now completely written in Haxe.