Book Image

Crystal Programming

By : George Dietrich, Guilherme Bernal
Book Image

Crystal Programming

By: George Dietrich, Guilherme Bernal

Overview of this book

Crystal is a programming language with a concise and user-friendly syntax, along with a seamless system and a performant core, reaching C-like speed. This book will help you gain a deep understanding of the fundamental concepts of Crystal and show you how to apply them to create various types of applications. This book comes packed with step-by-step explanations of essential concepts and practical examples. You'll learn how to use Crystal’s features to create complex and organized projects relying on OOP and its most common design patterns. As you progress, you'll gain a solid understanding of both the basic and advanced features of Crystal. This will enable you to build any application, including command-line interface (CLI) programs and web applications using IOs, concurrency and C bindings, HTTP servers, and the JSON API. By the end of this programming book, you’ll be equipped with the skills you need to use Crystal programming for building and understanding any application you come across.
Table of Contents (26 chapters)
1
Part 1: Getting Started
5
Part 2: Learning by Doing – CLI
10
Part 3: Learn by Doing – Web Application
13
Part 4: Metaprogramming
18
Part 5: Supporting Tools

Preface

The Crystal programming language is designed with both humans and computers in mind. It provides highly readable syntax that compiles to efficient code.

In this book, we are going to explore all that Crystal has to offer. We will start by introducing the language, including its core syntactical and semantic features. Next, we will dive into how to create a new Crystal project by walking through how to create a CLI-based application, which will involve making use of more advanced features such as IOs, concurrency, and C bindings.

In the third part of this book, we will learn how to make use of external libraries in the form of Crystal Shards. We will then make use of this knowledge by walking through the process of creating a web application using the Athena Framework.

The fourth part of the book covers one of Crystal’s most powerful features: metaprogramming. Here, we will learn how to leverage macros, annotations, and compile-time-type introspection. We will then learn how these can be combined to implement some pretty powerful features.

We will wrap things up by introducing some of Crystal’s supporting features, such as how to document, test, and deploy Crystal programs, as well as how to automate these processes by introducing CI into your workflow.

Important Note:

This book is intended for Crystal version 1.4.x. Future versions should also work but will not cover newly added features.