You are not logged in.
Hi, I'm taking the old documentation in: https://synopse.info/files/html/Synopse … 01.18.html
and trying to convert it to mORMot2, as-is, just changing the old class/method names from the old to the new convention. I'm also working on adapting all the code examples and code snippets so they at least compile with mORMot2
Chapters with all code validated: 5, 8, 16, 25
The temporal address for it is: http://wp.cyber.es/mORMot2-SAD-Index.html
I'ts split in chapter-sized documents linked from an index and from chapter to chapter
Would be grateful to know if what I'm doing is useful, useless, or whatever in the middle.
If it's useful, once finished I'd pass it to the boss so it does whatever he wants with it.
Offline
It could be better to work at documentation source level, i.e. on the SynProject .pro text file itself.
That is, update
https://github.com/synopse/mORMot2/blob … ormot2.pro
from
https://github.com/synopse/mORMot/blob/ … mework.pro
I guess only some part of the original source could be added, some of the "architecture blabling" could be just ignored.
Offline
Hi ab ![]()
If what I'm doing is worth anything, I can adapt it to the .pro format, but first I'd like to know if what I'm doing is useful or just garbage
Offline
If you start from the existing mormot2.pro file, and append some content from the mORMot 1 .pro file, and make pull requests after proper corrections/renaming, I would add them.
But please only a few core part of the mORMOt 1 .pro file.
Anyway, your existing content is very interresting.
Do you use some AI to help you?
Offline
Hi ab
If what I'm doing is worth anything, I can adapt it to the .pro format, but first I'd like to know if what I'm doing is useful or just garbage
Hey, Javierus
Your work is pretty impressive! mORMot is a great framework, but the learning curve is steep. The way you organized the topics and the samples shown will definitely help many users, from newbies to those already "initiated" in the mORMot world.
Best regards!
Offline
Do you use some AI to help you?
After 45 years of daily coding, these days 99% of the code I produce every day is through AI. Had you asked me one year ago if this was possible, I would have thought you were crazy.
The documentation updating from mORMot(1) to mORMot2 is 100% done with AI
The code examples are all compiled to be sure it's syntactically correct; even the snippets are enclosed in a fake project so it can be compiled
I'm using more mORMot2 now than before; yesterday just remade an MCP server I had made with the GDK MCP server, with mORMot2. The very excellent code documentation inlined everywhere in mORMot2 makes the AI understand it perfectly; way better than me.
In my mORMot2 copy, every folder has a CLAUDE.md documenting it, and then a main .md document with a global description and links to all the folder documents
Offline
I'll make a pull request for it , just with the MD files
I have a folder with this documentation I'm translating, just as html files for now, and all the code and projects for all the examples. It's not adequate for publishing: it is for Delphi 12.3 and has some search paths for my codebase structure, but if you feel curious, I could make a separate pull request, so you can get it and reject the request
I was also thinking on adapting all the DMVCframework examples but adapted to mORMot2, except the ones that are very specific and can't be adapted. If you believe it could be helpful, tell me and I'll do it
Offline
I am trying to migrate the examples of Mormot 1.18 to Mormot 2 using Claude Code. Once all are successful, I will share the mormot2-migration skill, which may be helpful to others who wish to use Claude Code. Here is the progress:
| # | Project Path | Status |
| --- | --------------------------------------------------------- | ------- |
| 1 | 01 - In Memory ORM/Project01.lpi | SUCCESS |
| 2 | 02 - Embedded SQLite3 ORM/Project02.lpi | SUCCESS |
| 3 | 03 - NamedPipe Client-Server/Project03Client.lpi | SUCCESS |
| 4 | 03 - NamedPipe Client-Server/Project03Server.lpi | SUCCESS |
| 5 | 04 - HTTP Client-Server/Project04Client.lpi | SUCCESS |
| 6 | 04 - HTTP Client-Server/Project04Server.lpi | SUCCESS |
| 7 | 06 - Remote JSON REST Service/Project06Client.lpi | SUCCESS |
| 8 | 06 - Remote JSON REST Service/Project06Server.lpi | SUCCESS |
| 9 | 09 - HttpApi web server/HttpApiServer.lpi | SUCCESS |
| 10 | 10 - Background Http service/httpservice.lpi | SUCCESS |
| 11 | 10 - Background Http service/httpserviceSetup.lpi | SUCCESS |
| 12 | 11 - Exception logging/LogView.lpi | SUCCESS |
| 13 | 13 - StandAlone JSON SQL server/JSONSQLClient.lpi | SUCCESS |
| 14 | 13 - StandAlone JSON SQL server/JSONSQLServer.lpi | SUCCESS |
| 15 | 14 - Interface based services/Project14Client.lpi | SUCCESS |
| 16 | 14 - Interface based services/Project14ServerHttp.lpi | SUCCESS |
| 17 | 14 - Interface based services/Project14ServerHttpWeak.lpi | SUCCESS |
| 18 | 14 - Interface based services/Project14ServerInMemory.lpi | SUCCESS |
| 19 | 27 - CrossPlatform Clients/FPC/JSONconsole.lpi | SUCCESS |
| 20 | 27 - CrossPlatform Clients/FPC/LCLClient.lpi | SUCCESS |
| 21 | 31 - WebSockets/Project31LongWorkClient.lpi | SUCCESS |
| 22 | 31 - WebSockets/Project31LongWorkServer.lpi | SUCCESS |
| 23 | 31 - WebSockets/Project31WinHTTPEchoServer.lpi | SUCCESS |
| 24 | 33 - ECC/ECC.lpi | SUCCESS |
| 25 | 36 - Simple REST Benchmark/RESTBenchmark.lpi | SUCCESS |
| 26 | 37 - FishShop Service/FishShopDaemon.lpi | SUCCESS |
| 27 | 37 - FishShop Service/TestFishShop.lpi | SUCCESS |Offline
I will share the mormot2-migration skill, which may be helpful to others who wish to use Claude Code
I'm interested, will wait for it
Offline
I found this AI genetared useful:
https://zread.ai/synopse/mORMot2
and
https://zread.ai/synopse/mORMot
Offline
zen010101 wrote:I will share the mormot2-migration skill, which may be helpful to others who wish to use Claude Code
I'm interested, will wait for it
Here is my skill file: ~/.cluade/skill/mormot2-migration/SKILL.md : https://gist.github.com/zen010101/ace68 … 0e1039e312
Here is the progress using it to migrate all the Samples shipped with mORMot 1.18 :
# mORMot 1 Examples Migration Progress
**Updated**: 2025-12-14 | **Target**: Compile with `{$define PUREMORMOT2}`
## Summary
| Compiler | Total | Pass | Fail |
|----------|-------|------|------|
| FPC | 35 | 34 | 1 |
| Delphi | 60 | 50 | 10 |
| **All** | 95 | 84 | 11 |
**Overall: 84/95 (88%) projects compile successfully**
---
## FPC Compilation Results (.lpi)
| # | Project | Status | Notes |
|----|-----------------------------------|--------|--------------------------------|
| 1 | 01/Project01.lpi | PASS | |
| 2 | 02/Project02.lpi | PASS | |
| 3 | 03/Project03Client.lpi | PASS | |
| 4 | 03/Project03Server.lpi | PASS | |
| 5 | 04/Project04Client.lpi | PASS | |
| 6 | 04/Project04Server.lpi | PASS | |
| 7 | 06/Project06Client.lpi | PASS | |
| 8 | 06/Project06Server.lpi | PASS | |
| 9 | 09/HttpApiServer.lpi | PASS | |
| 10 | 10/httpservice.lpi | PASS | |
| 11 | 10/httpserviceSetup.lpi | PASS | |
| 12 | 11/LogView.lpi | FAIL | mormot.ui.controls (VCL only) |
| 13 | 13/JSONSQLClient.lpi | PASS | |
| 14 | 13/JSONSQLServer.lpi | PASS | |
| 15 | 14/Project14Client.lpi | PASS | |
| 16 | 14/Project14ServerHttp.lpi | PASS | |
| 17 | 14/Project14ServerHttpWeak.lpi | PASS | |
| 18 | 14/Project14ServerInMemory.lpi | PASS | |
| 19 | 15/PerfTest.lpi | PASS | Fixed TRestBatch pattern |
| 20 | 15/PerfTestConsole.lpi | PASS | Fixed TRestBatch pattern |
| 21 | 24/MongoDBTests.lpi | PASS | Fixed TRestBatch pattern |
| 22 | 25/JSONPerfTests.lpi | PASS | Fixed comment syntax |
| 23 | 27/FPC/JSONconsole.lpi | PASS | |
| 24 | 27/FPC/LCLClient.lpi | PASS | |
| 25 | 30/MVCServer.lpi | PASS | Fixed TOrmTable, TRestBatch |
| 26 | 30/MVCServerMongoDB.lpi | PASS | Fixed PBKDF2_SHA3 import |
| 27 | 30/MVCServerPostgreSQL.lpi | PASS | Fixed TSqlDBConnectionProperties |
| 28 | 31/Project31LongWorkClient.lpi | PASS | |
| 29 | 31/Project31LongWorkServer.lpi | PASS | |
| 30 | 31/Project31SimpleEchoServer.lpi | PASS | Fixed WebSocket API |
| 31 | 31/Project31WinHTTPEchoServer.lpi | PASS | |
| 32 | 33/ECC.lpi | PASS | |
| 33 | 36/RESTBenchmark.lpi | PASS | |
| 34 | 37/FishShopDaemon.lpi | PASS | |
| 35 | 37/TestFishShop.lpi | PASS | |
**FPC: 34/35 (97%) passed**
---
## Delphi Compilation Results (.dpr/.dproj)
### Passed (50)
| # | Project | Notes |
|----|--------------------------------------|-------------------------|
| 1 | 04/Project04ServerStatic.dpr | |
| 2 | 05/SynPdfFormCanvas.dpr | |
| 3 | 05/SynPdfLayers.dpr | |
| 4 | 05/TestSQLite3Pages.dpr | |
| 5 | 07/SynTest.dpr | |
| 6 | 11/LibraryTest.dpr | |
| 7 | 11/LoggingTest.dpr | |
| 8 | 11/RemoteLoggingTest.dpr | |
| 9 | 11/MyLibrary.dpr | |
| 10 | 11/UnSynLz.dpr | |
| 11 | 11/Map2Mab.dpr | |
| 12 | 11/thread512.dpr | |
| 13 | 12/DBSynLZ.dpr | |
| 14 | 14/Project14Server.dpr | |
| 15 | 14/Project14ServerExternal.dpr | |
| 16 | 15/mORMotBatchInsert.dpr | |
| 17 | 15/PerfTest.dpr | Fixed TRestBatch pattern |
| 18 | 15/PerfTestConsole.dpr | Fixed TRestBatch pattern |
| 19 | 16/Project16Client.dpr | |
| 20 | 16/Project16ServerHttp.dpr | |
| 21 | 17/mORMotVCLTest.dpr | Full PUREMORMOT2 |
| 22 | 18/Project18Server.dpr | |
| 23 | 19/Project19Server.dpr | |
| 24 | 20/Project20Client.dpr | |
| 25 | 20/Project20ServerInMemory.dpr | |
| 26 | 21/Project21HttpClient.dpr | |
| 27 | 21/Project21HttpServer.dpr | |
| 28 | 24/MongoDBTests.dpr | Fixed TRestBatch pattern |
| 29 | 25/JSONPerfTests.dpr | Fixed comment syntax |
| 30 | 26/RESTClient.dpr | |
| 31 | 26/RESTserver.dpr | |
| 32 | 27/Project14ServerHttpWrapper.dpr | |
| 33 | 27/RegressionTestsServer.dpr | |
| 34 | 28/RESTserver.dpr | |
| 35 | 28/RESTclient.dpr | |
| 36 | 30/MVCServer.dpr | Fixed TOrmTable, TRestBatch |
| 37 | 30/MVCServerMongoDB.dpr | Fixed PBKDF2_SHA3 import |
| 38 | 30/MVCServerPostgreSQL.dpr | Fixed TSqlDBConnectionProperties |
| 39 | 31/Project31ChatServer.dpr | |
| 40 | 31/Project31ChatClient.dpr | |
| 41 | 31/Project31SimpleEchoServer.dpr | Fixed WebSocket API |
| 42 | 34/Project34RTSPproxy.dpr | |
| 43 | 35/01/ServBook.dpr | |
| 44 | 35/01/TestAll.dpr | |
| 45 | 35/02/ServBook.dpr | |
| 46 | 35/02/TestAll.dpr | |
| 47 | 35/03/ServBook.dpr | |
| 48 | 35/03/TestAll.dpr | |
| 49 | 35/04/ServBook.dpr | |
| 50 | 35/04/TestAll.dpr | |
| 51 | 35/05/ServBook.dpr | |
| 52 | 35/05/TestAll.dpr | |
### Failed (10) - Permanently Blocked
| # | Project | Error | Status |
|----|----------------------------------|---------------------------------------|------------------------------|
| 1 | 08/TaskDialogTest.dpr | mormot.ui.login not found | Blocked: UI unit missing |
| 2 | 11/LogView.dpr | SynMemoEx not found | Blocked: SynMemoEx removed |
| 3 | 12/SynDBExplorer.dpr | mormot.ui.orm not found | Blocked: UI framework |
| 4 | 22/JSHttpApiServer.dpr | Executable undeclared (SynSM) | Blocked: SynSM removed |
| 5 | 23/TestMustache.dpr | SynSM not found | Blocked: SynSM removed |
| 6 | 23/TestSynSM.dpr | SynSM.inc not found | Blocked: SynSM removed |
| 7 | 27/FMClient.dpr | SynCrossPlatformJSON not found | Blocked: CrossPlatform removed |
| 8 | 27/VCLClient.dpr | SynCrossPlatformJSON not found | Blocked: CrossPlatform removed |
| 9 | 27/RegressionTests.dpr | SynCrossPlatform.inc not found | Blocked: CrossPlatform removed |
| 10 | 27/MobileClient.dpr | SynCrossPlatformJSON not found | Blocked: CrossPlatform removed |
| 11 | 28/RESTserver_wrappers.dpr | Delphi-only (ODBC), no .lpi | Blocked: No FPC project file |
| 12 | 30/MVCServerFirebird.dpr | TSqlDBZeosConnectionProperties | Blocked: No Zeos/FireDAC driver |
| 13 | MainDemo/SynFile.dpr | mORMoti18n not found | Blocked: UI framework removed |
**Delphi: 52/65 (80%) passed** (excluding permanently blocked projects)Those who are interested can continue to improve the SKILL.md file, and then use Claude Code to migrate the remaining Samples files to mORMot 2.
Offline
The temporal address for it is: http://wp.cyber.es/mORMot2-SAD-Index.html
I really like this version. Even if it doesn't end up being selected as the official version, please keep it.
Thank you again, Javierus, for presenting us with such concise and impactful mORMot 2 materials. I believe this will help many people. ![]()
Offline
It could be better to work at documentation source level, i.e. on the SynProject .pro text file itself.
That is, update https://github.com/synopse/mORMot2/blob … ormot2.pro
Are you sure on keeping the .pro format? Do you still use it?
if so, how can I install SynProject to be sure the .pro files work? The AI is happy with it and has made an automated tool to update the .pro from the .md, but I'd prefer watching the .pro file result before sending you the pull request
Offline
It needs Delphi 7 to be compiled, sadly.
You can download a SynProject executable from
https://synopse.info/forum/viewtopic.php?id=53
Just unzip it, and call it with the .pro file as argument.
It should display the .pro file content in its editor.
Then click on the "word" icon, and select "SAD".
Parse all source code + SAD rtf for instance to generate the output in Word.
Of course, you need a Word instance installed.
But a set of .md file may be just fine too.
I guess it is easiest.
Offline
the word options give me Access violation at address 0000000
The website export does not seem to do anything
Offline
Re-posted latest update to:
https://wp.cyber.es/mORMot2/mORMot2-SAD-Index.html
All the examples and snippets have been compiled.
Offline
The .pro files are here: https://wp.cyber.es/mORMot2/pro_output.zip
Offline
OK the .pro files are clearly not fully correct but I did not expect much from the AI since this is in fact a very complex format.
Some hints:
- encoding should be CP 1252 not UTF-8
- lines with {} only should just be avoided.
- sometimes the .pro tables format are fine but sometimes it is not
And of course, the whole format of the .pro itself is not understood, but it is a "complex single file to rule them all" so we can't expect miracles.
I suspect the markdown files are better options, and match what most users expect.
Thanks a lot anyway for all this!
Offline
I can expand the documentation to cover this report, and send it for your consideration, if you wish:
Generated: 2025-12-18
Scope: Comprehensive analysis of mORMot 2.0-2.3 features
Method: Comparison of SAD documentation vs 129 source units and 14 internal CLAUDE.md files
Total Features Analyzed: 20
The mORMot2 SAD was adapted from mORMot1 documentation. While existing content is accurate (100% alignment verified), 20 features lack substantive documentation.
Priority Distribution
HIGH (4): IDocList, OpenAPI Generator, ACME, LDAP
MEDIUM (5): Async HTTP, Relay/Tunnel, RSA, PKCS#11, Windows Security
LOW (11): PDF, Reports, Compression, 7-Zip, PE/COFF, etc.
Top 5 Most Important
HIGH - ACME/Let's Encrypt - MENTION_ONLY - Medium effort
HIGH - LDAP Client - MENTION_ONLY - Medium effort
HIGH - OpenAPI Client Generator - MISSING - Medium effort
HIGH - IDocList/IDocDict - MENTION_ONLY - Small effort
MEDIUM - WebSocket Relay/Tunnel - MENTION_ONLY - Medium effort
1. ACME/Let's Encrypt Native Support
Status: MENTION_ONLY
Priority: HIGH
Source: src/net/mormot.net.acme.pas
Internal Docs: src/net/CLAUDE.md
What's in SAD
Chapter 01: Listed as feature ("ACME/Let's Encrypt - Automatic TLS certificate management")
Chapter 03: Listed in units table (mormot.net.acme | ACME/Let's Encrypt)
Chapter 20.6.3: Only documents external certbot, NOT native mORMot support
What's Missing
// Key classes NOT documented:
TAcmeClient // Main ACME v2 client class
TJwsHttpClient // JWS HTTP client for ACME protocol
TAcmeChallenge // HTTP-01 challenge structure
TOnAcmeChallenge // Callback for challenge handling
THttpFullServer // HTTP server with built-in ACME support
// Constants:
ACME_LETSENCRYPT_URL // Production Let's Encrypt
ACME_LETSENCRYPT_DEBUG_URL // Staging/testing
ACME_ZEROSSL_URL // ZeroSSL alternativeImpact: Developers don't know mORMot can automatically obtain TLS certificates without external tools like certbot.
---
2. LDAP Client
Status: MENTION_ONLY
Priority: HIGH
Source: src/net/mormot.net.ldap.pas
Internal Docs: src/net/CLAUDE.md
What's in SAD
Chapter 03: Listed in units table (mormot.net.ldap | LDAP client)
Chapter 21: Fictitious references to GetUserIdFromLDAP() (doesn't exist)
What's Missing
// Key classes NOT documented:
TLdapClient // Main LDAP client class
TLdapCheckMember // Group membership verification
TCldapDomainInfo // Domain info via CLDAP
// Key functions:
CldapGetDomainInfo() // Query domain controller
function LdapAuth() // HTTP BASIC auth via LDAP
// Constants:
LDAP_PORT = '389'
LDAP_TLS_PORT = '636'Impact: Developers can't leverage mORMot's native LDAP client for Active Directory integration.
---
3. OpenAPI Client Generator
Status: MISSING (SAD documents export, not import)
Priority: HIGH
Source: src/net/mormot.net.openapi.pas
Blog Post: Swagger/OpenAPI Client Generator
What's in SAD
Chapter 17.5: Documents generating OpenAPI spec FROM mORMot services (export)
Does NOT document consuming external OpenAPI specs to generate clients (import)
What's Missing
// Key classes NOT documented:
TOpenApiParser // Parse OpenAPI 3.x / Swagger 2 specs
TOpenApiVersion // oav2 (Swagger), oav3 (OpenAPI 3.x)
TOpenApiSchema // Schema definition wrapper
// Usage pattern (NOT documented):
var
Parser: TOpenApiParser;
begin
Parser := TOpenApiParser.Create;
Parser.ParseFile('api-spec.json');
Parser.GeneratePascalUnit('GeneratedClient.pas');
end;Impact: This is a major productivity feature added in v2.3 - developers can consume any REST API with generated type-safe clients.
---
4. IDocList / IDocDict Interfaces
Status: MENTION_ONLY
Priority: HIGH
Source: src/core/mormot.core.variants.pas
Blog Post: Easy JSON with Delphi and FPC
What's in SAD
Chapter 04.5: Extensive TDocVariant/TDocVariantData documentation
Chapter 04 table: Mentions IDocDict, IDocList without explanation
NO examples or usage patterns for the interfaces
What's Missing
// Modern interface-based access (NOT documented):
var
List: IDocList;
Dict: IDocDict;
begin
// Automatic memory management via interfaces
List := DocList('[1, 2, 3, "text"]');
Dict := DocDict('{"name": "John", "age": 30}');
// Safe iteration
for item in List do
WriteLn(item);
// Direct access
WriteLn(Dict['name']); // 'John'
end;Impact: Developers use verbose TDocVariantData patterns when cleaner IDocList/IDocDict is available.
---
5. Async HTTP Server (Direct Usage)
Status: PARTIAL
Priority: MEDIUM
Source: src/net/mormot.net.async.pas
What's Documented
useHttpAsync mode for TRestHttpServer ✓
Server mode comparison table ✓
What's Missing
// Direct HTTP server (NOT via TRestHttpServer):
THttpAsyncServer // Event-driven HTTP server
TPollAsyncSockets // Low-level async socket handling
THttpProxyServer // HTTP proxy with caching
// Architecture details:
// - IOCP on Windows (USE_WINIOCP)
// - epoll on Linux, kqueue on BSD/macOS
// - Thread pool configuration---
6. WebSocket Relay / Tunnel
Status: MENTION_ONLY
Priority: MEDIUM (high enterprise value!)
Source: src/net/mormot.net.relay.pas, src/net/mormot.net.tunnel.pas
What's in SAD
Chapter 03: Listed in table (mormot.net.relay | Firewall traversal)
NO documentation of how to use it
What's Missing (SIGNIFICANT FEATURE!)
RELAY ARCHITECTURE (from source code)
+------------+ PUBLIC RELAY PRIVATE RELAY
| client 1 |---\ +----------------+ +----------------+
+------------+ --->| encapsulation |<-->| decapsulation |
+----------------+ +----------------+
+------------+ --->| | | |---> ORM/SOA Server
| client 2 |---/ +----------------+ +----------------+ (behind firewall)
+------------+
internet simple Linux box corporate LANKey classes:
TPublicRelay - Public server (internet-facing)
TPrivateRelay - Private client (inside firewall)
TTunnelLocal - TCP/UDP port forwarding
Benefits:
Access servers behind firewalls WITHOUT firewall changes
Regular WebSocket connection (works through proxies)
Built-in encryption (SynLZ + optional ECDHE)
---
7. Windows Security (SID/DACL/ACE/SDDL)
Status: NO_DOC
Priority: MEDIUM
Source: src/core/mormot.core.os.security.pas
What's Missing
// Cross-platform Windows security model implementation:
RawSid // Binary SID storage
TSid // SID structure
TSecurityDescriptor // Full SD wrapper
SDDL parsing/generation // Security Descriptor Definition Language
// Key features:
// - Parse/generate SIDs (S-1-5-21-...)
// - DACL/SACL manipulation
// - Conditional ACE expressions
// - Active Directory definitions
// - Kerberos KeyTab support---
8. Native RSA Encryption
Status: MENTION_ONLY
Priority: MEDIUM
Source: src/crypt/mormot.crypt.rsa.pas
What's Missing
// Pure Pascal RSA implementation (no OpenSSL required):
TBigInt // Big integer arithmetic
TRsaContext // RSA computation context
TRsaPrivateKey // Private key handling
TRsaPublicKey // Public key handling
// Features NOT documented:
// - FIPS-level key generation
// - RSASSA-PKCS1-v1.5 signatures
// - RSASSA-PSS signatures
// - Key pair validation
// - Performance notes (slower than OpenSSL, fastest native Pascal)---
9. PKCS#11 / HSM Support
Status: NO_DOC (single table mention)
Priority: MEDIUM
Source: src/crypt/mormot.crypt.pkcs11.pas
What's Missing
// Hardware Security Module integration:
ICryptCertPkcs11 // Certificate interface with HSM info
TPkcs11 // PKCS#11 library wrapper
TPkcs11Object // Token object abstraction
// Key features:
// - Load certificates from HSM
// - Sign/verify using hardware keys
// - PIN management
// - Slot/token discovery
// - Integration with Cert()/Asym() factories---
10-12. Lower Priority Features
10. DNS Client - mormot.net.dns.pas
Query any DNS record type (A, MX, SRV, TXT, etc.)
11. mget/THttpPeerCache - src/tools/mget/
HTTP downloader with P2P LAN cache, resume, hash verification
12. Command Line Parser - mormot.core.rtti.pas
RTTI-based argument parsing: SetObjectFromExecutableCommandLine()
---
13-20. Phase 2 Features (Low Priority)
13. PDF Generation Engine - mormot.ui.pdf.pas
TPdfDocument, PDF/A compliance, encryption, Uniscribe
14. Report Engine - mormot.ui.report.pas
TGdiPages with preview, print, PDF export
15. Compression (Lizard, Zstd) - mormot.lib.lizard.pas
TAlgoLizard: 1.8 GB/s decompression speed
16. 7-Zip Integration - mormot.lib.win7zip.pas
I7zReader/I7zWriter interfaces
17. PE/COFF Parser - mormot.misc.pecoff.pas
TSynPELoader: Cross-platform Windows executable analysis
18. ORM Grid Integration - mormot.ui.grid.orm.pas
TOrmTableToGrid: Bind ORM results to TDrawGrid
19. Console App Framework - mormot.app.console.pas
ICommandLine/TCommandLine with interactive prompting
20. Database Proxy - mormot.db.proxy.pas
Access databases through HTTP relay
HIGH Priority:
IDocList/IDocDict - MENTION_ONLY - Small effort - Expand Ch 04.5
OpenAPI Client Generator - MISSING - Medium effort - New section Ch 17
ACME/Let's Encrypt - MENTION_ONLY - Medium effort - New section Ch 20
LDAP Client - MENTION_ONLY - Medium effort - New section Ch 21
MEDIUM Priority:
Async HTTP (direct) - PARTIAL - Medium effort - Expand Ch 11
WebSocket Relay/Tunnel - MENTION_ONLY - Medium effort - New section Ch 11/20
Native RSA - MENTION_ONLY - Medium effort - Expand Ch 23
PKCS#11/HSM - NO_DOC - Medium effort - New section Ch 23
Windows Security - NO_DOC - Medium effort - New section Ch 21
LOW Priority:
DNS Client - MENTION_ONLY - Small effort - Optional Ch 03
mget/PeerCache - NO_DOC - Small effort - Optional new section
Command Line Parser - NO_DOC - Small effort - Optional Ch 04
PDF Generation - MENTION_ONLY - Medium effort - New chapter/section
Report Engine - NO_DOC - Medium effort - New chapter/section
Compression (Lizard/Zstd) - MENTION_ONLY - Small effort - Expand Ch 03
7-Zip Integration - MENTION_ONLY - Small effort - Optional
PE/COFF Parser - NO_DOC - Small effort - Optional
ORM Grid Integration - NO_DOC - Small effort - Optional
Console App Framework - NO_DOC - Small effort - Optional
Database Proxy - MENTION_ONLY - Small effort - Optional
Immediate Actions (High Impact, Low Effort)
IDocList/IDocDict - Expand Chapter 04.5 (small effort, high value). Source: src/core/CLAUDE.md, blog post available
Short-Term Actions (High Impact)
OpenAPI Generator - New section in Chapter 17 (blog post available)
ACME/Let's Encrypt - New section in Chapter 20 or 21
LDAP Client - New section in Chapter 21
Medium-Term Actions
WebSocket Relay/Tunnel - New section (high enterprise value)
Native RSA/X.509 - Expand Chapter 23
PKCS#11/HSM - New section in Chapter 23
Internal CLAUDE.md - Detailed technical docs - src/*/CLAUDE.md (14 files)
Blog Posts - Feature announcements - blog.synopse.info
Source Comments - API documentation - *.pas files
Test Suite - Usage examples - /mnt/w/mORMot2/test/
Blog Posts to Reference:
OpenAPI Generator (2024-09): Swagger/OpenAPI Client Generator
IDocList/IDocDict (2024-02): Easy JSON with Delphi and FPC
Native X.509/RSA (2023-12): Native X.509 and RSA Support
mget/PeerCache (2024-01): Happy New Year 2024 and Welcome MGET
---
Report End
Offline
I would like to add one:
### mormot.app.daemon
Daemon (e.g. Windows Service) Stand-Alone Background Executable Support
- Parent Daemon Settings Class
- Parent Daemon Application Class
### mormot.app.agl
Launch, Watch and Kill Services or Executables from a main Service Instance
- `TSynAngelizeService` Sub-Service Settings and Process
- `TSynAngelize` Main Service Launcher and Watcher
Offline
I would like to add one:
### mormot.app.daemon
Daemon (e.g. Windows Service) Stand-Alone Background Executable Support
- Parent Daemon Settings Class
- Parent Daemon Application Class### mormot.app.agl
Launch, Watch and Kill Services or Executables from a main Service Instance
- `TSynAngelizeService` Sub-Service Settings and Process
- `TSynAngelize` Main Service Launcher and Watcher
The docs/ folder in the latest mORMot2 commit already include those two units:
● Both units are documented in the mORMot2-SAD documentation. Here's the summary:
mormot.app.daemon.pas
Documented in:
- Chapter 03 (line 366): Listed in the unit table as "Daemon/service support"
- Chapter 20 (line 198): Used in code examples for daemon creation
- Chapter 26 (line 150, 548): Mentioned in the architecture overview and deployment section for Windows service deployment
The documentation covers cross-platform daemon/service functionality - the same code can run as a console application, Windows service, or Linux daemon.
mormot.app.agl.pas (Angelize)
Documented in:
- Chapter 03 (line 367): Listed as "Application Graphics Layer" (note: the alignment report questions this description)
- Chapter 20 (section 20.5, starting line 356): Comprehensive documentation of TSynAngelize as mORMot's cross-platform process manager
Chapter 20.5 "Process Manager (Angelize)" provides the most detailed coverage:
- Describes TSynAngelize as similar to NSSM (Windows) or supervisord (Linux)
- JSON-configured and integrated with the daemon framework
- Includes architecture diagrams, code examples, and a feature comparison table with NSSM, supervisord, and systemd
Offline
THttpAsyncClient doc, ex. Sample of using THttpAsyncClient in THttpAsyncServer service! Non blocking async service call remote service with async client.
Last edited by ttomas (Yesterday 12:16:35)
Offline
Those who are interested can continue to improve the SKILL.md file, and then use Claude Code to migrate the remaining Samples files to mORMot 2.
Will you commit the working examples to the official repository?
Offline
Will you commit the working examples to the official repository?
I'm not sure if everyone needs it. I can put it in my repo for a while first.
Offline