A Brief Tour of the Shard Ecosystem

The Crystal ecosystem is growing rapidly: at the time of writing, more than 3700 shards are available in very diverse fields. Let’s first list the places where you should go “hunting” for shards:

  • Your first stop should be Libhunt,[96] which is a curated list sorted into more than 50 categories.

  • Another curated list is Awesome Crystal.[97]

  • Crystal Shards[98] is a simple find mechanism, which also shows the trending, most popular, and recently updated projects.

  • Crystal ANN[99] is THE place where new projects, versions, blogs, or anything new to Crystal is announced.

It’s nearly impossible to even list, let alone discuss, the most useful shards. Concerning the web and databases, we already linked to a lot of important shards in this and the previous chapter. Here are some useful shards that are worth studying, some of which show the DSL-like capabilities of Crystal.

Job Processing

  • Sidekiq[100] is a simple and efficient background job processing framework that is four times faster than its API-compatible Ruby predecessor.[101] Sidekiq uses Kemal to render all dashboards and web UI in the app.

  • Schedule[102] and cron_scheduler[103] are useful for implementing job scheduling.

Deployment

  • Baked File System[104] allows you to store all your static files into a single binary to facilitate deployment.

Graphics and GUI

  • Most promising is Qt5.cr,[105] which provides bindings to the Qt5 framework, and libui,[106] which provides bindings to the native C GUI library for Linux, OS X, and Windows. crystal-gl[107] is an Open-GL binding in the works.

Games

  • For developing video games and multimedia applications, use CrSFML.[108] Cray[109] provides complete bindings to the extremely simple RayLib C library with audio, 2D, 3D, shaders, keyboard/mouse/gamepad/touch input, image manipulation, and more. Glove[110] is another framework that is in full development.

Artificial Intelligence and Machine Learning

  • Crystal-fann[111] is a Fast Artificial Neural Network binding in Crystal, developed by the company NeuraLegion for its products.

  • Ai4cr[112] is a port of the Ruby Playground for AI researchers.

Tooling

  • crystal-futures[113] is an implementation of futures as you would see in JavaScript.

  • Crystal-clear[114] implements Design by Contract using macros.

Bindings to Third-Party APIs

  • Twitter-crystal[115] is a library to access the Twitter API.
  • There are bindings for the Salesforce REST API, as well as for Spotify, Google Maps, Docker, GitHub, Slack, SoundCloud, and many others.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.135.246.245