DelphiMVCFramework

April 13, 2026 ยท View on GitHub

GitHub All Releases Ask DeepWiki Mentioned in Awesome

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.

Star History

Star History Chart

๐ŸŽฏ Key Features

๐Ÿ—๏ธ Architecture & Framework

  • 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

๐Ÿ” Security & Authentication

  • 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

๐Ÿ’พ Data Access & ORM

  • 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

๐ŸŒ Web & API Features

  • 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

๐Ÿ“Š Data Serialization

  • 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

๐Ÿ› ๏ธ Development & Deployment

  • IDE Wizard for project creation
  • Comprehensive logging with LoggerPro integration
  • Built-in profiler for performance monitoring
  • Unit testing framework โ€” 872 tests running against 5 server hosts (Classic / Indy Direct / HTTP.sys / Apache 2.4 / ISAPI). See docs/unit_tests.md for how to run them and the prerequisites.
  • dotEnv configuration support
  • Multiple deployment options: Standalone, Apache module, IIS ISAPI, Linux daemon

๐Ÿ–ฅ๏ธ Platform Support

Delphi Versions

  • 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 โœ…

Operating Systems

  • Windows (32-bit and 64-bit)
  • Linux (64-bit)
  • Android (experimental support)

Deployment Targets

  • Console Applications
  • Windows Services
  • Linux Daemons
  • Windows VCL Applications
  • Windows or Linux FMX Applications
  • Apache Modules (Windows/Linux)
  • IIS ISAPI Extensions (Windows)

Supported Databases (MVCActiveRecord)

MVCActiveRecord works with any database supported by FireDAC. The RQL (Resource Query Language) compiler and SQL generator are available for the following databases:

DatabaseMinimum VersionNotes
PostgreSQL9.6+RETURNING clause, native UUID. Recommended: 13+
Microsoft SQL Server2012+OFFSET/FETCH pagination requires 2012. Recommended: 2019+
MySQL5.7+LAST_INSERT_ID, backtick quoting. MariaDB 10.2+ also supported
Firebird1.5+gen_id sequences, ROWS pagination. RETURNING clause requires 2.0+. Recommended: 3.0+ (IDENTITY columns)
InterBaseXE3+No RETURNING clause, uses gen_id sequences for auto-generated keys
SQLite3.8+last_insert_rowid, no sequences. Recommended: 3.30+
Oracle12c (12.1)+OFFSET/FETCH pagination, RETURNING clause, sequences via DUAL

Tip: Include MVCFramework.SQLGenerators in 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).

๐Ÿ”’ Security & TLS 1.3 Support

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.

๐Ÿ Quick Start

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);

๐Ÿ‘‰ See full Quick Start Guide

๐Ÿ“š Learning Resources

๐Ÿ“– Official Guide

The comprehensive "DelphiMVCFramework - The Official Guide" is available in multiple languages:

๐Ÿ“˜ Technical Guides & Papers

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

๐ŸŽ“ Training & Support

๐Ÿค Community & Support

๐Ÿ’ฌ Get Help

๐ŸŽฏ Support the Project

  • โญ 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

๐Ÿ‘ฅ Contributors

๐Ÿ† Success Stories

"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

๐Ÿข Sponsors

DelphiMVCFramework is proudly sponsored by:

Gold Sponsors
bit Time Professionals
bit Time Software
Silver Sponsors
Centro Software
Delphi Studio ES
Orion Law
Vivaticket

๐Ÿ“„ License

DelphiMVCFramework is released under the Apache License 2.0. See LICENSE file for details.

๐Ÿ”— Quick Navigation

DocumentationCommunity
Quick StartFacebook Group
InstallationGitHub Discussions
SamplesX
RQL GuideBlog
dotEnv

Made with โค๏ธ by Daniele Teti and the community