InstantObjects
Pupular OOP-OPF Library for Delphi (from D10.1 to latest version)
Install / Use
/learn @EtheaDev/InstantObjectsREADME
InstantObjects 4.3.1 for Delphi 

Welcome to InstantObjects, the integrated framework for developing object-oriented business solutions in Delphi (from Delphi 10.1 to latest version)

www.embarcadero.com - learndelphi.org
What is InstantObjects
InstantObjects is a RAD technology that enables creation of applications based on persistent business objects. It simplifies the process of realizing ideas into products; shortens time-to-market, and helps keep business focus.
Even though it is still a bolted-on technology, InstantObjects integrates with the Delphi IDE and Object Pascal in a simple, flexible and intuitive manner. There are no sophisticated environments that have to be comprehended before application development can begin.
InstantObjects offers:
- Model realization in the Delphi IDE via integrated two-way tools (from editor to code)
- Object persistence in the most common relational databases or flat XML-based files (also with FireDAC Broker)
- Object presentation via standard data-aware controls.
- Serialization/Deserialization of object using delphi-neon library
- Rest Server of object using WiRL library
- Rest Server of object using MARS Curiosity library
From 4.2.2 version a new "Installer" read-to-use is located in the Release area: Download the Installer.
The Installer automatically detect your Delphi versions, install sources, build and install packages and add source paths.

Documentation
Follow the complete manual present in this site and look at the PrimerCross demo to find out how to build applications with an Object Persistence Layer very flexible.

Project Status
The project is still managed by Ethea S.r.l., an italian company that uses InstantObjects for InstantSolution Framework.
You can find more information about this Open-Source project in the wiki section.
InstantObjects source files are released under the Mozilla Public License Version 2.0. You may obtain a copy of the License at
www.mozilla.org/en-US/MPL/2.0/
Full DUnitX Tests
InstantObjects contains over 400 Unit Tests written for DUnitX and ubMock framework.
From 3.0 version is also compatible with TestInsight test framework.

Release Notes
VERSION HISTORY
Version 4.3.1 (2025-08-19)
- Added support for Delphi 13 Florence
Version 4.3.0 (2025-06-23)
- Added support form WiRL REST Server
- Added Source\WiRLServer units
- Added Demos\PrimerWiRLServer
- Update License to MPL 2.0
Version 4.2.3 (2025-04-10)
- Added support for Delphi 12.3 - 64bit IDE
- Fixed comparison of Objects using LargeIntFields
- Fixed compilation with Neon Library
Version 4.2.2 (2025-01-01)
- New Project Site
- New Setup for automatic Installation of Components
- Fixed some Tests for 64Bit platform
Version 4.2.1 (2024-09-16)
- Added support for Delphi 12.2
- Changed all uses with Namespace
- Fixed Demos for 64 Bit
- Added possibility to not trim strings (using IO_DISABLE_STRING_TRIM)
Version 4.2.0 (2024-08-05)
- Added support for 64Bit Windows Platform
- Added define USE_LARGEINT_FIELD_FOR_REF to create LargeIntField at Design-Time
- Removed old defines for older Delphi Versions
- Restored support for Delphi 10.1, 10.2, 10.3, 10.4
Version 4.1.0 (2023-10-22)
- Added support for Delphi 12
- Renamed packages (for Delphi 11 and Delphi 12)
- Support for older Delphi Versions before Delphi 11 discontinued
- Use Unidirectional cursors for optimize performances
Version 4.0.0 (2023-07-20)
- Completed support for etherogeneus Databases (using IsDescription, IsPrimaryKey, ForeignKeys)
- Refactoring Packages names:
- RunTime: (IOCore_4, IOIBFbCatalog_4, IOMSSqlCatalog_4, IOMySQLCatalog_4, IOADO_4, IODBX_4, IOIBX_4, IOXML_4, IOFireDAC_4, IOJSON_4)
- DesignTime: (dclIOCore_4, dclIOIBFbCatalog_4, dcldclIOMSSqlCatalog_4, dclIOMySQLCatalog_4, dclIOADO_4, dclIODBX_4, dclIOIBX_4, dclIOXML_4, dclIOFireDAC_4, dclIOJSON_4)
Version 3.1.0 (2023-06-26)
-
Added support for JSON Serialization via delphi-neon, requires: github.com/paolo-rossi/delphi-neon)
-
Added TInstantJSONConnector, TJSONFilesAccessor components
-
Added TInstantJSONBroker, TInstantJSONResolver, TInstantJSONTranslator, TInstantJSONQuery classes
Version 3.0.0 (2021-08-27)
-
Added support for Delphi 11 Alexandria
-
Updated Test Framework to DUnitX / TestInsight (only for D10.2, D10.3, D10.4, D11.0)
Version 2.10.0 (2021-03-29)
-
Fixed InstantDBX for compilation with IO_CONSOLE directive
-
Fixed FireDAC Broker for EncryptedPassword
-
Added OnIdChanged for TInstantObject class
-
Added Isolation property to FireDAC Broker
Version 2.9.0 (2021-01-24)
-
Added support delphi-NEON library for serialization/deserialization of objects
-
Added support for MARS Rest server library
-
Refactoring FireDAC connector/broker
-
Changed font for editor to Segoe UI
-
Added OnAssignParamValue event for Brokers
Version 2.8.0 (2020-08-25)
-
Added support for Delphi 10.4 Sydney
-
Minor bug-fixing
-
Editor font updated
Version 2.7.0 (2018-12-06)
-
Added support for Delphi 10.3 Rio
-
Cleaned old LINUX/KYLIX support
Version 2.6.0 (2017-04-04)
- Added support for Delphi 10.2 Tokyo
Version 2.5.0 (2016-05-31)
- Added support for Delphi 10.1 Berlin
Version 2.4.0 (2015-09-01)
- Added support for Delphi 10 Seattle
Version 2.3.0 (2015-04-08)
-
Added support for Delphi XE8
-
Added support for Delphi XE7
Version 2.2.0 (2014-05-12)
-
Full UNICODE support: based on UseUnicode flag of InstantConnection: Exposers uses TWideStringField or TWideMemoField mapping string attributes
-
Virtual Containers (for SQL brokers): Master-Detail relationship using a contaier without storage
(read VirtualContainers.txt for more informations) -
Added Broker for Embarcadero FireDac
-
Added support for Delphi XE5 and XE6
-
Updated UnitTesting for Exposers and Unicode Support
Version 2.1.0 (2007-02-26)
-
Support for SQL Server 2005; catalog support for SQL Server 7; better support for SQL Server in general.
-
Support for ModelMaker 6.20 to 9; better ModelMaker support in general in ObjectFoundry.
-
Support for InstantDate and InstantTime for date-only and time-only attribute types.
-
Instant Model Explorer enhancements:
- Class B has a base class A and subclasses C, D, etc. making a three tier class hierarchy. If Class B is deleted classes C, D, etc. will become subclasses of class A. Previously they would become subclasses of TInstantObject.
- New class B in model unit X has a base class A in model unit Y. When adding new class B, unit Y will be automatically added to the Interface uses clause of unit X.
- Whenever a unit is added to the uses clause of an interface section, that unit is removed from the implementation section uses clause if present. Whenever a unit is added to the implementation section uses clause, check the interface section uses clause and if the unit is there then don't add anything.
-
Instant model Explorer now uses the newer ToolsAPI on Delphi 7+.
-
Improved object circular reference detection.
-
Added ability to disable circular reference checking by undefining IO_CIRCULAR_REFERENCE_CHECK.
-
Enhanced SQL statement logging: now logs all statements, including select statements.
-
BDE broker: fixed incomplete implementation of IdDataType and IdSize.
-
ADO broker: fixed incomplete implementation of IdDataType and IdSize.
-
XML broker: now only creates one file for each object, in the concrete class' folder.
-
XML broker: removed support for versioning and utf-8 "BOT" encoding.
-
XML broker: fixed failure on query refresh.
-
XML broker restructured for easier customization.
-
Refactored InstantPersistence.pas into: InstantPersistence.pas - Remains the main 'IO interface' unit. InstantBrokers.pas - Contains the descendant brokers, connectors classes. InstantMetadata.pas - Contains the metadata, scheme, etc. classes. InstantTypes - Contains some type declarations.
-
Ubmock and fpcunit integrated into the source tree for easier test development.
-
Help file has been greatly improved.
-
Added explanatory document for IO to InterBase and Firebird data type mappings.
-
Various fixes and enhancements (see tracker).
Version 2.0.1 (2006-08-07)
- All 2.0 RC changes.
Version 1.9.3 (2006-05-07)
-
Help file has been improved.
-
Bug fix for # 1496971 Bug In Model Explorer Setting Index and Required properties.
-
Bug fix for # 1475841. "TInstantContainer.Sort error if empty".
-
Bug fix for # 1475982. Rebuilding a Firebird database creates disabled PKs.
-
Changed the visibility of the TInstantReferences.ObjectReferenceList property from private to protected.
-
Bug fix for # 1479652. "Problem with PrimeCross demo and InstantReference.Reset".
-
Changed TInstantSQLBroker.AcquireDataSet method to virtual.
-
Added a protected, virtual method UndoRecordBuffer to TInstantCustomExposer to enable customization of its Undo method.
-
Bug fix for # 1466586. Minor Error in Attribute Editor. Force the main definition ta
