Hey everyone!
I am pleased to announce that Marten 0.6 has been officially released!
TL;DR
Marten is a Crystal web framework that makes building web applications easy, productive, and fun. The latest 0.6 release of the framework brings significant enhancements, including the ability to define localized routes, support for annotations, array fields for schemas, and support for image fiels for models and schemas. These features make building apps with Marten smoother and more flexible. For a detailed overview of all new features and changes, check out the full changelog.
Main new features and highlights
- Localized routes - Marten now provides the ability to define localized routes through the use of two mechanisms: automatically adding locale prefixes to routes and activating the appropriate locale based on the prefix, and translating the routes themselves. These mechanisms can be used independently or in combination in order to easily localize your application’s URLs.
- Annotations - Marten now lets you annotate query sets with aggregated data. This is useful when you need to “retain” aggregated values for each record in a query set (possibly for further filtering or for making use of the aggregated values when dealing with individual records). This can be achieved by using the
#annotate
method. - Array fields for schemas - Marten now lets you define
array
schema fields that allow validating lists of values, with each value subject to the validation rules of an array member field (such asstring
,int
, or any other existing schema field type). - Image fields for models and schemas - It is now possible to define
image
fields in models and schemas, which allow you to store or validate files that are indeed images. - Plus many other enhancements and quality-of-life improvements — including smaller features, refinements, and fixes that make building with Marten even more enjoyable. Check out the full changelog for all the details.
What’s next?
The Marten framework is still in its early stages, and the core team is actively seeking feedback from users interested in experimenting with it or integrating it into their projects. If you encounter any bugs or have ideas to contribute, please open an issue or start a discussion in the project’s issue tracker on GitHub or join us on Discord. Your input and contributions are greatly appreciated!
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
Thanks for reading me!