SkillAgentSearch skills...

Delphimvcframework

DMVCFramework (for short) is a popular and powerful framework for Web API and Web Applications in Delphi. Supports RESTful and JSON-RPC WEB APIs development.

Install / Use

/learn @danieleteti/Delphimvcframework

README

<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

Table of Contents

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

DelphiMVCFramework

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

<a href="https://www.star-history.com/?repos=danieleteti%2Fdelphimvcframework&type=date&legend=top-left"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/image?repos=danieleteti/delphimvcframework&type=date&theme=dark&legend=top-left" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/image?repos=danieleteti/delphimvcframework&type=date&legend=top-left" /> <img alt="Star History Chart" src="https://api.star-history.com/image?repos=danieleteti/delphimvcframework&type=date&legend=top-left" /> </picture> </a>

🚀 Quick Links

🎯 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 (250+ tests)
  • 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:

| 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.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, E
View on GitHub
GitHub Stars1.4k
CategoryDevelopment
Updated3h ago
Forks379

Languages

Pascal

Security Score

100/100

Audited on Apr 3, 2026

No findings