crystal README

The project's README from github.com/crystal-lang/crystal. As one markdown file: README.md.

Crystal

Linux CI Build Status macOS CI Build Status AArch64 CI Build Status Windows CI Build Status CircleCI Build Status Join the chat at https://gitter.im/crystal-lang/crystal Code Triagers Badge


Crystal - Born and raised at Manas

Crystal is a programming language with the following goals:

Why?

We love Ruby's efficiency for writing code.

We love C's efficiency for running code.

We want the best of both worlds.

We want the compiler to understand what we mean without having to specify types everywhere.

We want full OOP.

Oh, and we don't want to write C code to make the code run faster.

Project Status

Within a major version, language features won't be removed or changed in any way that could prevent a Crystal program written with that version from compiling and working. The built-in standard library might be enriched, but it will always be done with backwards compatibility in mind.

Development of the Crystal language is possible thanks to the community's effort and the continued support of 84codes and every other sponsor.

Installing

Follow these installation instructions

Try it online

play.crystal-lang.org

Documentation

Community

Have any questions or suggestions? Ask on the Crystal Forum, on our Gitter channel or IRC channel #crystal-lang at irc.libera.chat, or on Stack Overflow under the crystal-lang tag. There is also an archived Google Group.

Contributing

The Crystal repository is hosted at crystal-lang/crystal on GitHub.

Read the general Contributing guide, and then:

  1. Fork it (https://github.com/crystal-lang/crystal/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

crystal (crystal-lang/crystal)

programming-language
Searching Database…

20.5K ·GitHub
What is this?Crystal is an open-source, general-purpose programming language whose syntax is inspired by Ruby; it has been developed in the open on GitHub since 2012.
Is it a framework, a library, or a full language?It is the language itself: this repository holds the Crystal compiler and its standard library, and the compiler turns your programs into efficient native code.
How do I get it running, and can I try it before installing?Install the compiler by following the official installation instructions, or skip installing and try Crystal right in the browser at play.crystal-lang.org.
Can I reuse my existing C libraries with it?Yes — you call C code by writing bindings to it in Crystal, so native C libraries can be wrapped and used directly from your programs.
If the syntax is like Ruby, will my Ruby code just work?No — Ruby compatibility is explicitly not a goal; the syntax is similar, but Crystal is a separate compiled language, not a Ruby implementation.
Do I have to write type annotations everywhere, like in Java or Go?No — Crystal is statically type-checked, but you do not specify the types of variables or method arguments; the compiler infers them.
Does it have metaprogramming to cut down boilerplate?Yes — the language supports compile-time evaluation and code generation, so repetitive code can be produced at build time instead of written by hand.
Will a Crystal update break my existing programs?Within a major version, no — language features are not removed or changed in ways that stop programs from compiling, and standard library growth keeps backwards compatibility in mind.
What are similar projects?spinel, scala, morloc, CalcKernel, reason, TypeScript, Singeli, gleam
Size
62 MB
Stars
20.5K
Age
13y
Commits · 90 Days