Reveal type in Crystal
crinja (Implementation of Jinja2 template language in Crystal ) - Release 0.8.1
Heads up: Crystal is upgrading its Regex engine
Learning Crystal with Battlesnake
https://dev.to/fdocr/learning-crystal-with-battlesnake-3chj
Fernando writes about his first steps with Crystal and has some nice things to say. He's building a Battlesnake implementation and explores the language, standard library and tooling.
Athena Framework 0.18.0
AMQProxy - an intelligent AMQP proxy
https://github.com/cloudamqp/amqproxy
An intelligent AMQP proxy with AMQP connection and channel pooling/reusing. Allows e.g. PHP clients to keep long lived connections to upstream servers, increasing publishing speed with a magnitude or more.
In the AMQP protocol, if you open a connection the client and the server has to exchange 7 TCP packages. If you then want to publish a message you have to open a channel which requires 2 more, and then to do the publish you need at least one more, and then to gracefully close the connection you need 4 more packages. In total 15 TCP packages, or 18 if you use AMQPS (TLS). For clients that can't for whatever reason keep long-lived connections to the server this has a considerable latency impact.
Ultimate GTK4 Crystal Guide
Marten 0.2 has been released!
Marten 0.2 has been released! 🚀
TL;DR
Marten is a Crystal web framework that makes building web applications easy, productive, and fun. The 0.2 release adds key features to the framework such as authentication, email sending, raw SQL query capabilities, ... You can check out the full changelog for an overview of all the new features and changes that are part of this release.
Main new features
- Email sending - Marten now allows the definition of emails that can be fully customized (properties, header values, etc) and whose bodies (HTML and/or text) are rendered by leveraging templates.
- Authentication - The framework now provides the ability to generate projects with a built-in authentication system that handles basic user management needs: signing in/out users, resetting passwords, etc. This can be achieved through the use of the
--with-auth
option of thenew
management command. - Raw SQL capabilities - Query sets now provide the ability to perform raw SQL queries that are mapped to actual model instances.
- Email field for models and schemas - It is now possible to define
email
fields in models and schemas. These allow you to easily persist valid email addresses in your models but also to expect valid email addresses in data sets validated through the use of schemas. - Transaction callbacks - Models now support the definition of transaction callbacks by using the
#after_commit
and#after_rollback
macros.
What’s next?
The Marten framework is still young, and as such, any feedback from people who would like to play with it and/or leverage it in simple projects would be greatly appreciated!
If you find a bug or if you want to contribute and share ideas regarding the framework, don’t hesitate to open an issue/discussion in the project’s issue tracker on GitHub or chat with us in our Discord.
And if you are new to Marten, here are a few ideas on how you can get started:
- Check out the Marten GitHub repository
- Check out the official documentation
- Ask for help or chat with the community in our Discord