eQual is a complete open-source low-code web-based framework, designed to efficiently create and manage modern softwares that can adapt to any Application Logic.
"Not everyone can be a fullstack developer, but with eQual, anyone can develop like one": Developing an application from end to end is extremely complex and requires a wide range of skills that few people possess on their own. eQual's mission is to enable any developer to create production-ready applications by helping them compensate for the aspects they are less proficient in.
⭐ Before reaching the moon, we need stars: if you find eQual useful, nice, or simply relevant, please consider giving us a star on GitHub! Your support encourages us and will help making eQual the most powerful framework ever.
🛠️ Contributors welcome! You want to contribute to a great open-source project? We need help to keep on 🚀, finishing 🚧, fixing 🐛, and make it 🎨
eQual offers a native Low-Code approach, based on the definition of the application logic and components (rather than on code or the language used).
Data is modeled via entities, to which a large part of the application logic is associated (workflow, roles, events, actions, policies), which are manipulated by the ORM, with which it is possible to interact using CQRS controllers.
In turn, the Controllers can be invoked via an API.
eQual offers tools that allow the visual consultation and editing of the different components, in turn in the form of relational diagrams, and entity, workflow, view, menu, and translation editors.
It also has a rendering engine that allows views and menus to be assembled in order to define a complete application.
This mechanism enables eQual to generate an application without writing a single line of code, providing both a user interface and an API that can be connected to any external service.
Beside its revolutionary edge, eQual is a fully-featured framework providing an amazing set of both traditional and innovative features.
✅ Visual Workbench for building Apps: No-code editor for all components (models, views, routes, ...).
✅ Instant APIs Without Code: Auto-documented controllers with an announcement system.
✅ Desktop & mobile: Customizable layout to fit any device screen.
✅ Views: Create any view without coding - form, lists, menus, charts, Dashboard.
✅ CQRS architecture: Division of controllers into Action Handlers, Data Providers, and App Providers.
✅ MVC segregation: Strict distinction between Models (entities), Views and Controllers.
✅ Dependency injection: Inject services into classes, methods, controllers, or functions anywhere.
✅ Data Adaptation: Automatically transform received data based on format and context.
✅ Services Extensibility: Ability to extend services behavior, and to register custom ones.
✅ Cascading Configuration: Overridable settings at different levels (default, global, package).
✅ I/O as HTTP messages: Inputs & outputs are handled as text in all contexts (default is 'application/json').
✅ Model definition: With support for inheritance, workflows, actions, roles and policies, transitions, and events.
✅ CRUD operations: Perform create, read, update, and delete operations on individual objects or collections.
✅ Domains: Simple array notation for any possible boolean condition, either directly or with references.
✅ Date References: Enables defining a date relative to another date using specific syntactic notations.
✅ Explicit typing (Usages): Attach any value to a Usage that can be flawlessly adapted (converted) to any other language or environment.
✅ Authentication Management: HTTP Auth support (JWT) & 3 levels of visibility (public, protected, private).
✅ Granular access control: Set permissions of any kind at any level (ACL, RBAC, PBAC, ABAC, ReBAC).
✅ Security Policies: Restrict access to a set of users or groups, based on their IP or Schedule.
✅ Secure: All the credentials are securely encrypted using bcrypt 448-bits with random salt.
✅ Settings values: Global, group, user, with multilingual support.
✅ Emails sending: Send emails via SMTP, either instantly or queued.
✅ Multi-formats exports: Export any Controller data in TXT, CSV, or PDF formats.
✅ Database: Ability to connect to various data source (DBMS), with guidelines to develop your own if needed.
✅ Multi-user: Allows concurrency through Optimistic Concurrency Control.
✅ Multi-lang & Multi-locale support: Provides multilingual support and regional settings.
✅ Self-host: Supports Docker, Kubernetes, AWS EC2, Google Cloud Run, and more.
✅ Embedded documentation: Embeds end-user documentation directly in Apps.
✅ CLI: Powerful command-line tool to easily discover available controllers and their roles & expected params.
✅ Auto-documented Controllers: Description with parameters along with their types and attributes.
✅ Logging: Recording of the history of changes made to entities, including user and date.
✅ Scheduled tasks: Execute controllers as scheduled tasks, either recurring or one-time.
✅ Alerts system: Allows to manage alerts (notice or error) linked to Controllers, with ability to ignore retry execution.
✅ Selectable debug levels and modes: Report anything, anywhere in the code, with 6 levels and 7 modes.
✅ Unit testing: Use AAA (Arrange, Act, Assert) pattern and support for rollback.
✅ Debug Console: Search amongst logs, grouped by threads, with keywords, level or mode.
🔲 Version control: Keep track of all versions of any object.
🔲 Authentication Policies: Set the level of required auth (token, password, mfa) based on the context (trust).
🔲 Pipelines: Ability to visually create and edit data flow by chaining controllers together.
Rock Solid Security Secure every API endpoint with User Management, Role-Based Access Controls, SSO Authentication, JWT, CORS, and OAuth.
Server-Side Scripting Implement custom logic on any endpoint to build your own custom API, and interact with it using your preferred programming language.
Low-Code Instant APIs Automatically generate a complete set of ReST API endpoints with live documentation for any SQL or NoSQL database, file storage system, or external service.
For a comprehensive documentation that includes examples and step-by-step instructions, please visit our full documentation at https://doc.equal.run.
eQual requires the following environment:
- PHP 8+ with extensions (opcache, zip, tidy, ...)
- Apache 2+ or Nginx
- SQL:2011 compatible DBMS (SQLite, MariaDB Server, Microsoft SQL Server, Oracle MySQL)
Download code as ZIP:
wget https://github.com/equalframework/equal/archive/master.zip
or clone with Git :
git clone https://github.com/equalframework/equal.git
For more info, see : http://doc.equal.run/getting-started/installation
Contributions are what make the open-source community such an amazing place to learn, inspire, and create.
If you'd like to contribute, please kindly read our Contributing Guide to familiarize yourself with our development process, how to suggest bug fixes and improvements, and the steps for building and testing your changes.
For questions or any type of support, you can reach out via Discord
eQual framework project - Released under the GNU Lesser General Public License v3.0.