Skip to content

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

License

Notifications You must be signed in to change notification settings

danieleteti/delphimvcframework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Table of Contents

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.

πŸš€ 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
  • 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

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

πŸ“Š 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)

πŸ”’ 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:

πŸŽ“ 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

Documentation Community
Quick Start Facebook Group
Installation GitHub Discussions
Samples X
RQL Guide Blog
dotEnv

Made with ❀️ by Daniele Teti and the community