Table of Contents
- DelphiMVCFramework
The most popular Delphi RESTful framework on GitHub
DelphiMVCFramework is a powerful, open-source framework for building RESTful services, JSON-RPC APIs, and web applications with Object Pascal. It provides a complete MVC architecture with built-in ORM, authentication, TLS 1.3 support and extensive middleware support.
- 📖 Official Guide - Comprehensive documentation and tutorials
- ⚡ Quick Start Guide - Get up and running in 5 minutes
- 📦 Installation - Step-by-step installation instructions
- 🎯 Samples - 40+ examples covering all features
- 📝 Changelog - Version history and release notes
- RESTful compliant (Richardson Maturity Model Level 3)
- JSON-RPC 2.0 support with automatic object remotization
- MVC pattern implementation with controller inheritance
- Middleware system for request/response processing
- Dependency injection support
- Domain modeling first approach
- JWT (JSON Web Token) authentication and authorization
- HTTP Basic Authentication support
- Custom authentication mechanisms
- CORS (Cross-Origin Resource Sharing) handling
- TLS 1.3 support for secure communications
- JWT Blacklist middleware for token revocation
- MVCActiveRecord - Powerful ORM with full CRUD operations
- Multi-database support: PostgreSQL, MySQL, MariaDB, Firebird, InterBase, SQLite, Microsoft SQL Server, Oracle
- RQL (Resource Query Language) for flexible querying
- Named queries support for optimized database access
- Connection pooling and transaction management
- Automatic entity generation from database schema
- WebSocket support for real-time bidirectional communication (server & client)
- Content negotiation with multiple MIME types
- Server-Side Views with Mustache and TemplatePro support
- Static file serving middleware
- File upload/download handling
- Server-Sent Events (SSE) for real-time updates
- HATEOAS (Hypermedia as the Engine of Application State) support
- OpenAPI/Swagger documentation generation
- Compression support (gzip, deflate)
- Rate limiting with in-memory and Redis-backed implementations
- Flexible JSON serialization/deserialization
- Custom serializers for complex types
- Nullable types support
- Dataset to JSON conversion
- Multiple naming conventions (camelCase, PascalCase, snake_case, etc.)
- Attribute-based field mapping
- IDE Wizard for project creation
- Comprehensive logging with LoggerPro integration
- Built-in profiler for performance monitoring
- Unit testing framework (250+ tests)
- dotEnv configuration support
- Multiple deployment options: Standalone, Apache module, IIS ISAPI, Linux daemon
- Delphi 13 Florence ✅
- Delphi 12.x Athens ✅
- Delphi 11.x Alexandria ✅
- Delphi 10.4 Sydney ✅
- Delphi 10.3 Rio ✅
- Delphi 10.2 Tokyo ✅
- Delphi 10.1 Berlin ✅
- Delphi 10 Seattle ✅
- Windows (32-bit and 64-bit)
- Linux (64-bit)
- Android (experimental support)
- Console Applications
- Windows Services
- Linux Daemons
- Windows VCL Applications
- Windows or Linux FMX Applications
- Apache Modules (Windows/Linux)
- IIS ISAPI Extensions (Windows)
MVCActiveRecord works with any database supported by FireDAC. The RQL (Resource Query Language) compiler and SQL generator are available for the following databases:
| Database | Minimum Version | Notes |
|---|---|---|
| PostgreSQL | 9.6+ | RETURNING clause, native UUID. Recommended: 13+ |
| Microsoft SQL Server | 2012+ | OFFSET/FETCH pagination requires 2012. Recommended: 2019+ |
| MySQL | 5.7+ | LAST_INSERT_ID, backtick quoting. MariaDB 10.2+ also supported |
| Firebird | 1.5+ | gen_id sequences, ROWS pagination. RETURNING clause requires 2.0+. Recommended: 3.0+ (IDENTITY columns) |
| InterBase | XE3+ | No RETURNING clause, uses gen_id sequences for auto-generated keys |
| SQLite | 3.8+ | last_insert_rowid, no sequences. Recommended: 3.30+ |
| Oracle | 12c (12.1)+ | OFFSET/FETCH pagination, RETURNING clause, sequences via DUAL |
Tip: Include
MVCFramework.SQLGeneratorsin your project's uses clause to register all database backends at once. Alternatively, include only the specific generator you need (e.g.MVCFramework.SQLGenerators.PostgreSQL).
DelphiMVCFramework provides enterprise-grade security features including full TLS 1.3 support. The framework automatically negotiates the highest available TLS version and provides:
- Perfect Forward Secrecy with modern cipher suites
- Certificate validation and custom certificate handling
- SNI (Server Name Indication) support for multiple SSL certificates
- HTTP Strict Transport Security (HSTS) headers
- Secure cookie handling with SameSite attributes
- CSRF protection mechanisms
TLS 1.3 brings significant security and performance improvements, including faster handshakes and stronger encryption algorithms. DelphiMVCFramework leverages these improvements automatically when deployed in compatible environments.
Here's how a simple DMVCFramework controller looks like:
// 1. Create a controller
[MVCPath('/api/hello')]
TMyController = class(TMVCController)
public
[MVCPath('/world')]
[MVCHTTPMethod([httpGET])]
function HelloWorld: TMyObject;
end;
// 2. Implement the action
function TMyController.HelloWorld: TMyObject;
begin
Result := TMyObject.Create('Hello World!');
end;
// 3. Register and start server elsewhere
FMVC := TMVCEngine.Create(Self);
FMVC.AddController(TMyController);The comprehensive "DelphiMVCFramework - The Official Guide" is available in multiple languages:
- 🇬🇧 English (eBook & Hardcover)
- 🇧🇷 Portuguese
- 🇪🇸 Spanish
Premium guides and video tutorials available at the DMVCFramework Patreon Shop:
- TemplatePro 1.1 - The Definitive Guide (EN, IT, ES, DE)
- A Practical Guide to Managing Complex Configurations with .env (EN, IT)
- Prompt Engineering - Mastering AI Communication (EN, IT, ES, DE)
- Building a Robust Job Queue System with FirebirdSQL (EN, IT, ES)
- Practical Guide to API and Webhooks with DelphiMVCFramework (IT, ES)
- Understanding JSON-RPC: A Lightweight Remote Procedure Call Protocol (EN)
- CRUD Web API with Delphi, DMVCFramework, and PostgreSQL (EN)
- MVCActiveRecord Series - Complete ORM guide in 3 parts (EN, IT)
- Pagination with RQL in DMVCFramework (EN)
- Using Caddy as Reverse Proxy for DMVCFramework Applications (EN, IT, ES)
- Localization in DMVCFramework Web Applications (Video)
- Sessions in DMVCFramework (Video)
- Bag of Words in Delphi - NLP guide (EN, IT) — Free for Patreon members
- Professional Training: Available through bit Time Professionals (world wide) and Delphi Studio ES (in Spain)
- Consultancy Services: Custom development and technical support available through bit Time Professionals (world wide) and Delphi Studio ES (in Spain)
- Community Support: Facebook Group (6000+ members)
- Facebook Group - Active community with 6000+ members
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - General questions and discussions
- ⭐ Star this repository - Help others discover DMVCFramework
- 🐛 Report bugs - Help improve the framework
- 📝 Contribute documentation - Share your knowledge
- 💰 Become a Patron - Access to premium contents, videos, article etc. reserved to supporters
"DMVCFramework is a great framework. It's very intuitive, fast, easy to use, actually there is nothing more to ask for." - Samir
"I'm still amazed by the DelphiMVCFramework code and documentation. Thank you very much and I am amazed by your quick feedback." - Benjamin Yang, Director of SQLGate
"We started the process of migrating our systems to micro services and are loving the DMVCFramework." - E. Costa
DelphiMVCFramework is proudly sponsored by:
| Gold Sponsors |
|---|
| bit Time Professionals |
| bit Time Software |
| Silver Sponsors |
|---|
| Centro Software |
| Delphi Studio ES |
| Orion Law |
| Vivaticket |
DelphiMVCFramework is released under the Apache License 2.0. See LICENSE file for details.
| Documentation | Community |
|---|---|
| Quick Start | Facebook Group |
| Installation | GitHub Discussions |
| Samples | X |
| RQL Guide | Blog |
| dotEnv |
Made with ❤️ by Daniele Teti and the community