Diamond Full-stack MVC / Template Engine - v2.5.0 Released!
bauss
jj_1337 at live.dk
Wed Nov 8 21:35:52 UTC 2017
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!
More information about the Digitalmars-d-announce
mailing list