{"id":13770051,"url":"https://github.com/danieleteti/delphimvcframework","last_synced_at":"2026-01-05T00:24:32.639Z","repository":{"id":32842413,"uuid":"36435897","full_name":"danieleteti/delphimvcframework","owner":"danieleteti","description":"DMVCFramework (for short) is a popular and powerful framework for WEB API in Delphi. Supports RESTful and JSON-RPC WEB APIs development.","archived":false,"fork":false,"pushed_at":"2024-05-23T09:02:04.000Z","size":291322,"stargazers_count":1195,"open_issues_count":41,"forks_count":345,"subscribers_count":166,"default_branch":"master","last_synced_at":"2024-05-23T09:25:41.838Z","etag":null,"topics":["api","application-server","delphi","delphimvcframework","json-rpc","jsonwebtoken","jwt","jwt-authentication","native","object-pascal","pascal","rest","restful","restful-api","restful-webservices","serialization-library","speed"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danieleteti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":"delphimvcframework","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2015-05-28T12:08:43.000Z","updated_at":"2024-05-23T09:25:45.648Z","dependencies_parsed_at":"2024-05-23T09:35:45.951Z","dependency_job_id":null,"html_url":"https://github.com/danieleteti/delphimvcframework","commit_stats":{"total_commits":1767,"total_committers":61,"mean_commits":28.9672131147541,"dds":"0.37294850028296544","last_synced_commit":"9afaa6cd68dbea941a220cec664bc732a81803a1"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieleteti%2Fdelphimvcframework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieleteti%2Fdelphimvcframework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieleteti%2Fdelphimvcframework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieleteti%2Fdelphimvcframework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danieleteti","download_url":"https://codeload.github.com/danieleteti/delphimvcframework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247385703,"owners_count":20930600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","application-server","delphi","delphimvcframework","json-rpc","jsonwebtoken","jwt","jwt-authentication","native","object-pascal","pascal","rest","restful","restful-api","restful-webservices","serialization-library","speed"],"created_at":"2024-08-03T17:00:33.852Z","updated_at":"2026-01-05T00:24:32.634Z","avatar_url":"https://github.com/danieleteti.png","language":"Pascal","funding_links":["https://patreon.com/delphimvcframework","https://www.patreon.com/delphimvcframework"],"categories":["Network","Tools"],"sub_categories":[],"readme":"\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**\n\n- [DelphiMVCFramework](#delphimvcframework)\n  - [🚀 Quick Links](#-quick-links)\n  - [🎯 Key Features](#-key-features)\n    - [🏗️ **Architecture \u0026 Framework**](#-architecture--framework)\n    - [🔐 **Security \u0026 Authentication**](#-security--authentication)\n    - [💾 **Data Access \u0026 ORM**](#-data-access--orm)\n    - [🌐 **Web \u0026 API Features**](#-web--api-features)\n    - [📊 **Data Serialization**](#-data-serialization)\n    - [🛠️ **Development \u0026 Deployment**](#-development--deployment)\n  - [🖥️ **Platform Support**](#-platform-support)\n    - [Delphi Versions](#delphi-versions)\n    - [Operating Systems](#operating-systems)\n    - [Deployment Targets](#deployment-targets)\n  - [🔒 **Security \u0026 TLS 1.3 Support**](#-security--tls-13-support)\n  - [🏁 **Quick Start**](#-quick-start)\n  - [📚 **Learning Resources**](#-learning-resources)\n    - [📖 **Official Guide**](#-official-guide)\n    - [🎓 **Training \u0026 Support**](#-training--support)\n  - [🤝 **Community \u0026 Support**](#-community--support)\n    - [💬 **Get Help**](#-get-help)\n    - [🎯 **Support the Project**](#-support-the-project)\n    - [👥 **Contributors**](#-contributors)\n  - [🏆 **Success Stories**](#-success-stories)\n  - [🏢 **Sponsors**](#-sponsors)\n  - [📄 **License**](#-license)\n  - [🔗 **Quick Navigation**](#-quick-navigation)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n# DelphiMVCFramework\n[![GitHub All Releases](https://img.shields.io/github/downloads/danieleteti/delphimvcframework/total?label=Downloads)](https://github.com/danieleteti/delphimvcframework/releases)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/danieleteti/delphimvcframework)\n[![Mentioned in Awesome](https://awesome.re/mentioned-badge.svg)](https://github.com/sindresorhus/awesome)\n\n![](https://img.shields.io/badge/stable-dmvcframework--3.4.3--aluminium-blue)\n![](https://img.shields.io/badge/beta-dmvcframework--3.5.0--silicon-orange)\n\n**The most popular Delphi RESTful framework on GitHub**\n\nDelphiMVCFramework 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.\n\n## 🚀 Quick Links\n\n- **[📖 Official Guide](http://www.danieleteti.it/books/)** - Comprehensive documentation and tutorials\n- **[⚡ Quick Start Guide](docs/quickstart_guide.md)** - Get up and running in 5 minutes\n- **[📦 Installation](docs/installation_guide.md)** - Step-by-step installation instructions\n- **[🎯 Samples](docs/samples_guide.md)** - 40+ examples covering all features\n- **[📝 Changelog](docs/changelog.md)** - Version history and release notes\n\n## 🎯 Key Features\n\n### 🏗️ **Architecture \u0026 Framework**\n- **RESTful compliant** (Richardson Maturity Model Level 3)\n- **JSON-RPC 2.0 support** with automatic object remotization\n- **MVC pattern implementation** with controller inheritance\n- **Middleware system** for request/response processing\n- **Dependency injection** support\n- **Domain modeling first** approach\n\n### 🔐 **Security \u0026 Authentication**\n- **JWT (JSON Web Token)** authentication and authorization\n- **HTTP Basic Authentication** support\n- **Custom authentication** mechanisms\n- **CORS (Cross-Origin Resource Sharing)** handling\n- **TLS 1.3 support** for secure communications\n- **JWT Blacklist middleware** for token revocation\n\n### 💾 **Data Access \u0026 ORM**\n- **MVCActiveRecord** - Powerful ORM with full CRUD operations\n- **Multi-database support**: PostgreSQL, MySQL, MariaDB, Firebird, InterBase, SQLite, Microsoft SQL Server\n- **RQL (Resource Query Language)** for flexible querying\n- **Named queries** support for optimized database access\n- **Connection pooling** and transaction management\n- **Automatic entity generation** from database schema\n\n### 🌐 **Web \u0026 API Features**\n- **WebSocket support** for real-time bidirectional communication (server \u0026 client)\n- **Content negotiation** with multiple MIME types\n- **Server-Side Views** with Mustache and TemplatePro support\n- **Static file serving** middleware\n- **File upload/download** handling\n- **Server-Sent Events (SSE)** for real-time updates\n- **HATEOAS** (Hypermedia as the Engine of Application State) support\n- **OpenAPI/Swagger** documentation generation\n- **Compression** support (gzip, deflate)\n- **Rate limiting** with in-memory and Redis-backed implementations\n\n### 📊 **Data Serialization**\n- **Flexible JSON serialization/deserialization**\n- **Custom serializers** for complex types\n- **Nullable types** support\n- **Dataset to JSON** conversion\n- **Multiple naming conventions** (camelCase, PascalCase, snake_case, etc.)\n- **Attribute-based** field mapping\n\n### 🛠️ **Development \u0026 Deployment**\n- **IDE Wizard** for project creation\n- **Comprehensive logging** with LoggerPro integration\n- **Built-in profiler** for performance monitoring\n- **Unit testing framework** (250+ tests)\n- **dotEnv configuration** support\n- **Multiple deployment options**: Standalone, Apache module, IIS ISAPI, Linux daemon\n\n## 🖥️ **Platform Support**\n\n### Delphi Versions\n- **Delphi 13 Florence** ✅\n- **Delphi 12.x Athens** ✅\n- **Delphi 11.x Alexandria** ✅\n- **Delphi 10.4 Sydney** ✅\n- **Delphi 10.3 Rio** ✅\n- **Delphi 10.2 Tokyo** ✅\n- **Delphi 10.1 Berlin** ✅\n- **Delphi 10 Seattle** ✅\n\n### Operating Systems\n- **Windows** (32-bit and 64-bit)\n- **Linux** (64-bit)\n- **Android** (experimental support)\n\n### Deployment Targets\n- Console Applications\n- Windows Services\n- Linux Daemons\n- Windows VCL Applications\n- Windows or Linux FMX Applications\n- Apache Modules (Windows/Linux)\n- IIS ISAPI Extensions (Windows)\n\n## 🔒 **Security \u0026 TLS 1.3 Support**\n\nDelphiMVCFramework provides enterprise-grade security features including full **TLS 1.3 support**. The framework automatically negotiates the highest available TLS version and provides:\n\n- **Perfect Forward Secrecy** with modern cipher suites\n- **Certificate validation** and custom certificate handling\n- **SNI (Server Name Indication)** support for multiple SSL certificates\n- **HTTP Strict Transport Security (HSTS)** headers\n- **Secure cookie** handling with SameSite attributes\n- **CSRF protection** mechanisms\n\nTLS 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.\n\n## 🏁 **Quick Start**\n\nHere's how a simple DMVCFramework controller looks like:\n\n```pascal\n// 1. Create a controller\n[MVCPath('/api/hello')]\nTMyController = class(TMVCController)\npublic\n  [MVCPath('/world')]\n  [MVCHTTPMethod([httpGET])]\n  function HelloWorld: TMyObject;\nend;\n\n// 2. Implement the action\nfunction TMyController.HelloWorld: TMyObject;\nbegin\n  Result := TMyObject.Create('Hello World!');\nend;\n\n// 3. Register and start server elsewhere\nFMVC := TMVCEngine.Create(Self);\nFMVC.AddController(TMyController);\n```\n\n**[👉 See full Quick Start Guide](docs/quickstart_guide.md)**\n\n## 📚 **Learning Resources**\n\n### 📖 **Official Guide**\nThe comprehensive **\"DelphiMVCFramework - The Official Guide\"** is available in multiple languages:\n- [🇬🇧 English](https://leanpub.com/delphimvcframework) (eBook \u0026 Hardcover)\n- [🇧🇷 Portuguese](https://leanpub.com/delphimvcframework-br)\n- [🇪🇸 Spanish](https://leanpub.com/delphimvcframework-es)\n\n### 🎓 **Training \u0026 Support**\n- **Professional Training**: Available through [bit Time Professionals](https://www.bittimeprofessionals.it) (world wide) and [Delphi Studio ES](https://www.delphistudio.es) (in Spain)\n- **Consultancy Services**: Custom development and technical support available through [bit Time Professionals](https://www.bittimeprofessionals.it) (world wide) and [Delphi Studio ES](https://www.delphistudio.es) (in Spain)\n- **Community Support**: [Facebook Group](https://www.facebook.com/groups/delphimvcframework) (6000+ members)\n\n## 🤝 **Community \u0026 Support**\n\n### 💬 **Get Help**\n- [Facebook Group](https://www.facebook.com/groups/delphimvcframework) - Active community with 6000+ members\n- [GitHub Issues](https://github.com/danieleteti/delphimvcframework/issues) - Bug reports and feature requests\n- [GitHub Discussions](https://github.com/danieleteti/delphimvcframework/discussions) - General questions and discussions\n\n### 🎯 **Support the Project**\n- ⭐ **Star this repository** - Help others discover DMVCFramework\n- 🐛 **Report bugs** - Help improve the framework\n- 📝 **Contribute documentation** - Share your knowledge\n- 💰 **[Become a Patron](https://www.patreon.com/delphimvcframework)** - Access to premium contents, videos, article etc. reserved to supporters\n\n### 👥 **Contributors**\n\u003ca href=\"https://github.com/danieleteti/delphimvcframework/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=danieleteti/delphimvcframework\" /\u003e\n\u003c/a\u003e\n\n## 🏆 **Success Stories**\n\n\u003e *\"DMVCFramework is a great framework. It's very intuitive, fast, easy to use, actually there is nothing more to ask for.\"* - Samir\n\n\u003e *\"I'm still amazed by the DelphiMVCFramework code and documentation. Thank you very much and I am amazed by your quick feedback.\"* - [Benjamin Yang](https://www.linkedin.com/in/benjamin-yang-4b0609159/), Director of SQLGate\n\n\u003e *\"We started the process of migrating our systems to micro services and are loving the DMVCFramework.\"* - E. Costa\n\n\n## 🏢 **Sponsors**\n\nDelphiMVCFramework is proudly sponsored by:\n\n| Gold Sponsors |\n|---|\n| [bit Time Professionals](https://www.bittimeprofessionals.com) |\n| [bit Time Software](https://www.bittime.it) |\n\n| Silver Sponsors |\n|---|\n| [Centro Software](https://www.centrosoftware.com) |\n| [Delphi Studio ES](http://www.delphistudio.es) |\n| [Orion Law](https://orionlaw.com/) |\n| [Vivaticket](https://www.vivaticket.com/) |\n\n## 📄 **License**\n\nDelphiMVCFramework is released under the Apache License 2.0. See [LICENSE](LICENSE) file for details.\n\n## 🔗 **Quick Navigation**\n\n| Documentation | Community |\n|---|---|\n| [Quick Start](docs/quickstart_guide.md) | [Facebook Group](https://www.facebook.com/groups/delphimvcframework) |\n| [Installation](INSTALLATION.md) | [GitHub Discussions](https://github.com/danieleteti/delphimvcframework/discussions) |\n| [Samples](SAMPLES.md) | [X](https://x.com/danieleteti) |\n| [RQL Guide](RQL.md) | [Blog](https://www.danieleteti.it) |\n| [dotEnv](DOTENV.md) |  |\n\n---\n\n**Made with ❤️ by [Daniele Teti](https://www.danieleteti.it) and the [community](https://github.com/danieleteti/delphimvcframework/graphs/contributors)**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieleteti%2Fdelphimvcframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanieleteti%2Fdelphimvcframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieleteti%2Fdelphimvcframework/lists"}