digitalmars.D.announce - Diamond Full-stack MVC / Template Engine - v2.5.0 Released!
- bauss (110/110) Nov 08 Hello D Community!
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!