November 08
Hello D Community!

I'm pleased to announce Diamond v2.5.0.

What is Diamond?

Diamond is a powerful MVC / Template Framework inspired by ASP.NET MVC using vibe.d as backend.

It was originally written as an alternative template engine to vibe.d's Diet templtes, but
has since then evolved into a complete web framework on-top of vibe.d

The goal of Diamond is to be able to use it for enterprise development.

Feature highlight:

General:

* Low Memory & CPU Consumption
* MVC & HMVC Possiblities
* RESTful
* ACL (Access-control-list)
* Cross-platform
* Website/Webapi support
* Stand-alone support (No web)
* i18n (Internationalization)

Data & Storage:

* ORM (Object relational mapping)
* MySql ORM
* Caching
* Mongo (Through vibe.d)
* Redis (Through vibe.d)
* Request-contexts
* Cookies
* Sessions
* Transactions

Views & Frontend:

* Compile-time Parsing
* Partial Views
* Layouts
* Fast & Performant Rendering
* Dynamic
* Any D code can be executed
* Sections
* Flash-messages

Controllers:

* Auto-mapping
* View-integration
* Mandatory Actions
* Version-control

More:

* Authentication
* CSRF Protection
* Cryptography (Through Botan)
* JSON/BSON (Partially through vibe.d)
* Asynchronous (Through vibe.d)
* Fibers/Tasks (Through vibe.d)
* Sharding (Partially using vibe.d)
* Network Security & Restrictions
* Unittesting
* Logging

Between v2.4.0 and v2.5.0 the following changes has been made:

* Bug fixes, refactoring and optimizations
  * As always with every release bugs are fixed, code is refactored and optimized.
  * Refactoring is usual not breaking changes, but some breaking changes may have happened.
* Minimal vibe.d interaction
  * There has been created wrappers around vibe.d components, making it easier to handle certain vibe.d components.
* Unittesting
  * Diamond now has build-in unittesting which can be used to test certain areas of the applications.
* Flash-messages
  * Diamond is now able to create flash-messages; which are useful for notifications/temporary messages.
* MySql / ORM Implementation
  * Diamond-db has been refactored, optimized and put in as a part of the official Diamond repository.
  * This means Diamond-db is no longer a package and to use the ORM you must have the framework.
  * This change was done to better interact with the core of Diamond.
* Logging
  * Logging has been added to Diamond, allowing to log requests, responses, errors etc.
  * Logging can be customized with custom loggers or there can be logged to files or a database.
* i18n
  * Internationalization and localization has been added to Diamond.
  * This allows for Diamond applications to be written for multiple languages and cultures.
* Transactions
  * Transactions have been added, allowing to handle transactional memory, as well snapshot types.
  * This is useful for critical areas where invalid/incomplete data can't be afforded.
* Route rewriting
  * It's now possible to redirect routes to other routes
  * It's also possible to combine routes to handle multiple requests with a single request.
* Version-control
  * Version control has been added being able to develop new controller functionality without breaking existing controllers.

There's a temporary website using a default Github theme:

https://diamondmvc.github.io/Diamond/

You can find documentation and API docs there.

The website will be replaced with an official website when it's ready.
Which of course will be written using Diamond.

Github: https://github.com/DiamondMVC/Diamond

DUB: http://code.dlang.org/packages/diamond (Currently waiting for DUB to update the package.)

Thank you!