Crystal ist eine allgemeine, objektorientierte Programmiersprache mit Ruby-ähnlicher Syntax und statischer Typisierung. Sie kompiliert über LLVM zu nativem Maschinencode — die Eleganz von Ruby mit der Geschwindigkeit von C. Der Compiler heißt crystal, der Paketmanager shards.

Compiler-Grundbefehle

crystal run programm.cr     # kompiliert und führt aus
crystal build programm.cr    # erzeugt ausführbares Binary
crystal build --release programm.cr  # optimierte Produktionsversion
crystal spec                 # führt Specs/Tests aus
crystal docs                 # generiert API-Dokumentation
crystal tool format datei.cr # formatiert den Quellcode
crystal eval 'puts "Hallo"'  # Code direkt auswerten
crystal --version            # Version anzeigen

Shards — Paketmanager

shards init                  # neues Projekt mit shard.yml anlegen
shards install               # Abhängigkeiten installieren
shards update                # Abhängigkeiten aktualisieren
shards build                 # Projekt bauen
shards check                 # prüft, ob alles installiert ist

Die Abhängigkeiten stehen in der shard.yml-Datei. Bekannte Web-Frameworks sind Kemal (schnell und einfach) und Lucky; die Standardbibliothek bringt bereits einen HTTP-Server mit.

Besonderheiten

  • Typinferenz: Typen werden zur Kompilierzeit ermittelt, ohne Typannotationen zu erzwingen.
  • Concurrency über Fibers und Channels, ähnlich wie bei Go.
  • Makros zur Metaprogrammierung zur Compile-Zeit.

Verwandte Grundlagen: Ruby-Befehle, Go-Befehle, Rust-Befehle, Nim-Befehle.