The Crystal programming language has reached its 1.0 release, meaning that it has achieved language stability, a plan for maintenance releases and some features that haven’t received full support as of this release.

Crystal is a language that has syntax similar to Ruby, is statically type-checked without the need for specifying the type of variables or method parameters, is able to call C code and more.

With language stability, users can expect that for any future 1.x version, the code will still compile and work without any significant incompatibilities. Also, language and standard library features won’t be removed or changed in any way that could prevent existing code from compiling and working, according to the developers behind the project in a blog post.

The developers also predict that they are going to be maintaining at least two minor versions and that migration between releases should be relatively easy.

There are also some features that are currently available in Crystal that didn’t receive official support yet. However, the features will continue to be available on every version and users of the language can expect official support for them in future 1.x releases.

The incomplete features include Windows support, multithreading support to enable users to run the Crystal runtime on multiple cores through the use of the ‘-Dpreview_mt flag’ and porting Crystal into ARM mainly for embedded and mobile devices.

The 1.0 release also introduced some changes including tuples, which allow type-safe accessors with literal indices since the compiler knows which type each component is. Also string and character literals are no longer allowed to have unicode surrogate halves in escape sequences.

Additional details on all of the new features and language changes are available here.