#1 Re: mORMot 2 » mORMot 2 support Delphi Mobile compiler ? » Yesterday 08:35:15

itSDS wrote:

... i think no one will make a server on mobile platform.

Sure — but on the other hand, I know a few friends in the IT sec field who would be stunned to carry a mobile phone running a dedicated app instead of walking around with an offline raspberry or any other pocket device.


ab wrote:

I started working on it.

When I was doing my daily commit reading, I couldn't help but smile wide… and the image of @ab that popped into my head was .. lol lol lol

782L.gif

#2 Re: mORMot 2 » Access violation writing to address » 2025-06-22 09:07:24

I can't reproduce it - it work as expected at least on fpc 3.2.2.

edit: ... and mormot 2.3.10775

#3 Re: mORMot 2 » Transaction with Multi-Table » 2025-06-20 13:39:23

@fatimaEzz, unit is "mormot.crypt.secure". 

protip: consider using a specialized tool to perform recursive content searches within a specified folder (/mormot/src), eg. Agent Ransack (free).

#4 mORMot 2 » [proposal] Add GetSetCsvValueTrimmed() for scoped set parsing » 2025-06-02 14:33:50

flydev
Replies: 0

hi @ab,

I'd like to propose the addition of a helper function in `mormot.core.rtti.pas` to enhance support for parsing scoped CSV values into enum sets.

About use case, in JWT-based APIs, I often use enum sets encoded as scoped strings such as: `users:create,users:read,system:logs`
These values are not directly mappable using `GetSetCsvValue()` due to their prefixed format (I might missed an existing gem!).

I wrote a helper named `GetSetCsvValueTrimmed()` which uses `TrimOneChar()` to remove the scoped prefix before matching against enumeration names (maybe another internal function would be more appropriate):

/// Parse a delimited list of scoped identifiers into a set, returned as a 64-bit bitmask
// - each entry in the CSV should follow a scoped naming pattern, e.g. 'users:create'
// - the prefix separator (scopeChar) is customizable and defaults to ':' if not specified
// - this function is similar to GetSetCsvValue(), but will remove the scope prefix
//   from each identifier before matching it against the enumeration names
// - returns 0 on parsing failure, or if none of the values map to known enum items
// - expects aTypeInfo to point to a set of enumerations with matching names
function GetSetCsvValueTrimmed(aTypeInfo: PRttiInfo; Csv: PUtf8Char; scopeChar: AnsiChar = ':'): QWord;  
function GetSetCsvValueTrimmed(aTypeInfo: PRttiInfo; Csv: PUtf8Char; scopeChar: AnsiChar): QWord;
var
  tmp: RawUtf8;
begin
  result := 0;
  if (Csv = nil) or (Csv^ = #0) or (aTypeInfo = nil) then
    exit;
  // remove scopes like 'users:' or 'system:' prefixes from each value
  tmp := TrimOneChar(Csv, scopeChar);
  result := GetSetCsvValue(aTypeInfo, pointer(tmp));
end;  

If it makes sense, I also wrote unit tests to validate typical JWT-like scope strings.

type 
  TEnumPetStorePerm = (
    epsPermNone, epsStoreRead, epsStoreWrite);
  TEnumPetStorePermSet = set of TEnumPetStorePerm;

  checkEqual(GetSetCsvValueTrimmed(TypeInfo(TEnumPetStorePermSet), 'store:read,store:write'), 6, 'TEnumPetStorePerm');
  // ...

Thanks!

#5 Re: mORMot 2 » ORM-Wrapper for mysql/maria/sqlite in one » 2025-05-29 13:11:09

I published a gist with a working example (mormot2), assuming a TAuthUser is on external db, feel free to change the table name with one of your..

/flydev-fr/84f808d5ff184df6036e54ac03dd43ab

#6 Re: mORMot 2 » ORM-Wrapper for mysql/maria/sqlite in one » 2025-05-29 12:51:47

TRestClientDB use an hidden TRestServerDB; you could map to an external db for example this should work:

Props := TSQLDBZEOSConnectionProperties.Create(...);
Props.ThreadSafeConnection.Connect;
OrmMapExternal(aORMSQLModel, [TYourOrmMapped], Props);
ORMDB:= TRestClientDB.Create(aORMSQLModel, nil, ':memory:', TRestServerDB, False, StringToUtf8(aPassword));
TRestServerDB(ORMDB.Server).Server.CreateMissingTables(0, [itoNoAutoCreateUsers]);

#7 Re: mORMot 2 » ORM-Wrapper for mysql/maria/sqlite in one » 2025-05-29 10:19:00

I dont really get what you are asking specifically, but did you took a look at /ex/extdb-bench or mongodb & techempower samples? also read test.orm.extdb.pas from test folder.


Basically to get a TRestServerDB virtually working with MariaDB, there is a generic connection definition:

  // 1. Define your external SQL connection
  Props := TSQLDBZEOSConnectionProperties.Create(
    FormatUtf8('zdbc:mysql://127.0.0.1:%/%?username=%;password=%',
      DB_PORT, DB_SOURCE, DB_USERNAME, DB_PASSWORD]),
      'aSqlite3.db', DB_USERNAME, DB_PASSWORD);
  Props.ThreadSafeConnection.Connect;
  // 2. Define your model and ORM mapping
  Model := TOrmModel.Create([TOrmSomething]);
  OrmMapExternal(Model, [TOrmSomething], Props);
  // 3. Create the REST server, mapped to the external DB
  Server := TRestServerDB.Create(Model);
  Server.Server.CreateMissingTables;

#8 Re: mORMot 2 » GetSingleOrDefault » 2025-05-22 15:53:44

On delphi? seem a potential tricky lifetime or reference issue.. variable V forces the compiler to go through its standard for variant assignment whereas in direct assignment to 'var result' might become invalid if docVariantArray is modified or freed prematurely.

Maybe try `SetVariantByValue(TDocVariantData(docVariantArray).Values[0], Result);`

#9 Re: mORMot 2 » Check Out This AI-Generated Podcast on mORMot 1.18 SAD » 2025-05-15 08:49:13

My pleasure smile

I forgot to talk about the tool. To get the mopenapi tool, just compile it from there src/tools/mopenapi (blog post) and then you will be able to get a JsonClient and DTOs defintions in a second and ready to work with your API, then just throw the DTOs code on Gemini if you want them on your interfaces or whatever.

To get the JSON file from YAML, just use any YAML <> JSON converter - I will send a PR to handle YAML on mopenapi tool directly if ab accept it smile

#10 Re: mORMot 2 » Check Out This AI-Generated Podcast on mORMot 1.18 SAD » 2025-05-15 08:24:25

I posted a small readme there, sorry I had to do it fast as I am at work, feel free to ask.

https://github.com/flydev-fr/the-big-prompt

#11 Re: mORMot 2 » Check Out This AI-Generated Podcast on mORMot 1.18 SAD » 2025-05-15 07:32:21

Hi @zen, yes I can - let me create a repo for that.

did you include the implementation parts of all unit files? (I always thought AI finds that part useless.)

Yes because of two things. The first is that the frameworks is complex and I know models are subject to hallucinations while working with mormot; For example you can get GPT working on v2 only after corrections and sending to the models samples.

The second, I had the sentiment that Gemini had a lot of power, and with 1 million of tokens context (like GPT 4.1 now) I tested to throw the full source code. And it worked like a charm lol

And as the tests are written by @ab and show the right way of implementing things, then I through it was the best idea to pack the tests. FYI, packing the WHOLE framework don't work as you will get too much tokens, like 2 or 3 millions - so you must choose the best parts based on what you are trying to achieve.

#12 mORMot 2 » [NPM Package] TTimeLog JS Conversion Module » 2025-05-14 16:36:47

flydev
Replies: 0

Hi everyone,

I've published a small JavaScript module to NPM registry called mormot2-timelog.

This module provides utility functions to convert mORMot2's TTimeLog (Int64) values to and from standard JavaScript Date objects and ISO 8601 strings. This can be useful when working with mORMot2 backends and JavaScript frontends, eg. to show TCreateTime and TModTime as human readable date.

You can find it here: https://www.npmjs.com/package/mormot2-timelog
The source code and usage examples are on GitHub: flydev-fr/mormot2-timelog

Hope this is helpful to the community smile

#13 Re: mORMot 2 » Check Out This AI-Generated Podcast on mORMot 1.18 SAD » 2025-05-14 06:49:21

Lol  big_smile big_smile

Perhaps worth generating a mORMot 2 pdf, to meet the AI beast.

yes! I did a try last month with Gemini, to generate a full project based on mormot2. I packed almost the whole mormot source and test folder with repomix, added some custom corrections I was used to and thrown a prompt of 900,000 tokens to Gemini. It has ended with a project of multiple REST servers, all the interfaces and services implementations and an openapi definition file.
I then could generate the whole JsonClient and DTOs with mormot tool. I just had to make some minors corrections - impressed as f**.

#15 Re: mORMot 2 » Am I using JWT correctly? » 2025-05-07 09:01:07

I forgot to tell that if you want to play with it, I ported the project on mORMot v2 some months ago and I can publish it.

#16 Re: mORMot 2 » Am I using JWT correctly? » 2025-05-07 08:26:04

I had this issue and I had to write my own TRestServerAuthentication* handler and overriding `SessionCreate()`, `RetrieveSession()` and `Auth()` as because HandleAuthentication is set at RestServer level, session logic is expected.

I found the thread that explain what I said, there: /forum/viewtopic.php?pid=30095#p30095

You will find a nice example (v1) from @Chris75018.

#17 Re: mORMot 2 » OpenAPI client working example? Also with OAuth2? » 2025-04-29 11:41:51

I published a small example on github: flydev-fr/mormot2-jsonclient
and small comments project1.lpr#L29-L38

look how the client is used in `petstore.client` (generated by mopenapi)

Check request headers:

CemnG34.png

#18 Re: mORMot 2 » TGuid orm property (RTTI) » 2025-04-26 09:50:50

Hi @ab I had read this thread two times but missed this message! thanks smile

#19 mORMot 2 » TGuid orm property (RTTI) » 2025-04-26 09:40:52

flydev
Replies: 3

Hi there,

A small question, is TGuid supported as published property on Orm class?  I have no issue with delphi but on FPC I get "Error: This kind of property cannot be published".

#20 Re: mORMot 2 » OpenAPI client working example? Also with OAuth2? » 2025-04-26 09:33:06

Just use `SetBearer`, you can of course just set header manually.

#21 Re: mORMot 2 » Am I using JWT correctly? » 2025-04-08 08:15:34

I am a bit late, for question #1 I like to give as reference this awesome post:

refresh-tokens-what-are-they-and-when-to-use-them on auth0.com blog.

Well explained and make things crystal clear.

Also, it will be easier to find it when searching on forum big_smile

#22 Re: mORMot 2 » Unique Key User Authentication » 2024-11-16 09:33:16

Yes, you can implement a JWT-based authentication endpoint in your server. Could either be provided directly by your server (via a secret key) or integrated with an existing identity provider like Hanko or Auth0.

#23 Re: mORMot 2 » Console project deadlock » 2024-11-16 09:14:53

hi, hard to say without more details.  Start by enabling log with LOG_VERBOSE level then check logs once it happen again.

#24 Re: mORMot 2 » Different behaviour in variant to json » 2024-11-11 21:27:13

v.a := _Arr(['2']);
//
_safe(v)^.Values[0] := _Arr(['3']);
_safe(v.a)^.Values[0] := '4';
//
DocDictFrom(v).Update('a', _Arr(['5']));
with DocListFrom(v.a) do
  U[0] := '6';
{"a":["2"],"b":"2"}
{"a":["3"],"b":"2"}
{"a":["4"],"b":"2"}
{"a":["5"],"b":"2"}
{"a":["6"],"b":"2"}

#25 Re: mORMot 2 » Stuck with HTTP.sys registration error in TRestHttpServer » 2024-10-30 11:41:03

@youssef, remove route and add the correct one with https scheme. Your issue seem to be the route is already registered for http.

read this:

link to documentation + windows tool:   
https://synopse.info/forum/viewtopic.ph … 368#p42368

I think @zen010101 is suggesting you this post:
https://synopse.info/forum/viewtopic.ph … 664#p27664

#26 Re: mORMot 2 » new samples for mormot2, any rules? » 2024-10-28 20:49:13

A README file would be great too, to explain what each sample is about

Sure, thanks.


I like the idea @mpv

#27 mORMot 2 » new samples for mormot2, any rules? » 2024-10-26 09:30:58

flydev
Replies: 5

@ab is there any rules to follow before making PRs about pushing some samples dedicated for mormot2?

I finished to write a vanilla js lib which support mormot custom auth scheme that will be available on github and i would like to provide samples projects about it.

I have other projects as well, like client/server websockets, an mvc dashboard, etc. I thought they might be useful to other developers.

#28 Re: mORMot 2 » Arnaud will be away for Holidays » 2024-10-17 09:03:37

ab wrote:

... because I will speak at two great places:
- the danish Delphi user group - see https://blog.synopse.info/?post/2024/10 … of-Denmark
- the EKON 28 conferences - see https://entwickler-konferenz.de/speaker/arnaud-bouchez/
cool

I’m hoping to be there at the next EKON you’ll be participating in to learn, listen to your insights, and finally ask a question I’ve been wanting to ask for over five years! Enjoy the sessions smile

#30 Re: mORMot 2 » Websockets » 2024-10-16 15:56:44

Hi, I’ve just published a project that you might want to check out. Its based of a larger project I’m working on (inspired by Rails ActionCable and designed to work with mormot MVC). I’ve stripped the code a bit, so you’ll get a WebSockets server and some event handling. I’ve also included a JS client for chat functionality.

I’ll try to create a lighter sample this weekend based on the example you linked from Embarcadero.

You will need NPM or yarn installed to run the js project. I can build it to be ran without js tooling, just let me know. Anyway, you can connect with any websockets client on `ws:127.0.0.1:8082/cable` endpoint.

Files of interest:
- chat_channel.pas
- token/token.pas
- http-server/ws_server.pas

Do not pay attention to InitMVCApp and other mvc things.. hope it help smile

url:   https://github.com/flydev-fr/mormot-cable

#32 Re: mORMot 2 » THttpApiServer.addurl How to delete?use RemoveUrl can't » 2024-10-15 11:06:35

Hi,

are you talking about http.sys? if yes, read there: 11.6.2.2.3. Manual URI authorization

(windows gui tool:  https://codeplexarchive.org/project/httpsysmanager)

If not, then a good chinese<>eng translator for posting here can be found at deepl.com big_smile

#33 Re: mORMot 2 » Accessing this URL using TWinHttp will report an error » 2024-10-10 09:28:21

@ab, confirmed: All tests passed successfully.

Sounds like if this CPU is way too slow to generate the RSA keys without a timeout.

This makes sense, thanks you.

#34 Re: mORMot 2 » How to use Authentication by user/password? » 2024-10-10 09:13:32

I couldn't see any call to `Server.AuthenticationRegister(TRestServerAuthenticationDefault)` or so in this example.

as scheme name let suggest, it's implemented by default when using `true` for HandleUserAuthentication on Create*(), see lines mormot.rest.server.pas#L6176-L6181


EXC   EModelException {Message:"TAuthUser is not part of TOrmModel root=root"} [Main] at 443f23

TFileAuthUser is just derived from TAuthUser. Pheraps try with a more basic sample and then go further, I just published a project based on @martindoyle sample (04) and using a part of @tbo example,  you should be able to compile it on D7, grab it from flydev-fr/sample_interfacebasedservice

Hope it help.

#35 Re: mORMot 2 » Accessing this URL using TWinHttp will report an error » 2024-10-04 13:43:27

On my side and also on Windows 11 23H2 22631.4169, test of mormot v2.2.8610 (commit 34b4c7c from 2024-10-02) fail at fetching mustache specs from github (in test.core.data).

!  - Mustache renderer: 5 / 62 FAILED  1m36

Running microsoft curl.exe with `curl --verbose https://raw.githubusercontent.com/mustache/spec/master/specs/interpolation.json` fail

* schannel: remote party requests renegotiation
* schannel: renegotiating SSL/TLS connection
* schannel: SSL/TLS connection renegotiated
* schannel: failed to decrypt data, need more data

but with original curl.exe, there is no error (it use embedded CA bundle)..

*   Trying 185.199.110.133:443... (githubusercontent.com)
* ALPN: curl offers h2,http/1.1
...
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / [blank] / UNDEF
* ALPN: server accepted h2

On a embedded computer running on win7, the mustache test passed.

Note, without hijacking op thread, an os exception was triggered on first run and a second run returned a different result:
- first run log: https://pastebin.com/raw/PFQxFmez
- second run: https://pastebin.com/raw/xDLU21V0

Windows 7 SP1 (6.1.7601) [WinAnsi 1.7GB 1DB10A01]    4 x Intel(R) Celeron(R) CPU J1900 @ 1.99GHz [1MB] (x86)    on iEi H788 V1.00

#36 Re: mORMot 2 » mORMot 2 log file creation settings » 2024-08-27 07:47:28

you can find an example there: https://github.com/synopse/mORMot2/blob … #L160-L174

LogCompressAlgo is defined as global var in mormot.core.buffers, so include both units buffers and zip as @ColdZer0 said.

#37 Re: mORMot 2 » Where do I start? » 2024-08-18 09:04:28

As the error say, routing name 'Product' (TOrmProduct) already exist when you register your Product (IProduct) interface. As the framework use automatic serialization via rtti, an error is triggered when you use same name for interface (service) and table (storage).
In other words, your interface is translated to 'Product' and your table to 'Product'.

To avoid these errors, just be consistent in your naming convention, eg. name your interface `IProductService`. You might register a custom serializer to evade from this, but I didnt used it, so wait for another answer smile

#38 Re: mORMot 2 » MVC - multilingual and image(s) » 2024-06-27 19:39:40

Just pushed an update for people interested to see an example of the mvc app using automatic translation based on the msg reference files. Every user, guest or logged, can set his own language kept in cookie session.

ps: I am not claiming it's the right way of doing it as it seem ugly to create and free a changed language on render.

It can be compiled on lazarus. Anyway, the feature is really cool for an hybrid desktop app.

#39 Re: mORMot 2 » Where do I start? » 2024-06-25 11:50:43

Just keep in mind what's already said as you will need these references, then read New Async HTTP/WebSocket Server blog post to get a better overview and then run/study the code of the program used for the techempower benchmark which is IMO the best starting point as it show almost all of what you will need for your endpoints, without complexity.

Just grab the project, uncomment USE_SQLITE3, compile and test urls with Postman, browser or favorite tool.

#40 Re: mORMot 2 » Where do I start? » 2024-06-24 10:42:44

Hi, I can understand your point of view but some statements are false like about the documentation, at contrario the doc is quite gigantic and can be complex on the first read - but once you get a bit familiar with the framework structure and conventions, the doc turn easy to understand and will became your handbook, and it's still also true if we take into account that the current full documentation is about the version 1.

From the ground up, I can only suggest to read the whole introduction which include chapter 1, 2 and 3 - then play without getting into details with the samples, I mean compile, test and then read the code, then going from code to the documentation to make some corelation, also, the whole source code contain detailled comments.

You can find also Thomas (tbo)'s tutorials (read the readme linked on github), and to be honest, the full samples from the v1 are still useful.

Some links:
- doc v1 (v2 is a wip)
- Thomas tutorials (you will find write up, translatable, on delphipraxis)
- Stephan Bester's intros on Medium
- Again, some tutorials based on the v1, but still applies!
- A lot of samples there

The learning curve is rude, but definitely worth it.

#41 Re: mORMot 2 » MVC - multilingual and image(s) » 2024-06-22 18:23:56

I made an experiment to get an i18n implementation working for windows. As it is working and found it helpful, I published it on on github along a vcl and mvc-blog examples (require PUREMORMOT2).

#42 Re: mORMot 2 » MVC - multilingual and image(s) » 2024-05-24 13:18:46

Okay, I'll start experimenting with this workflow.

Regarding images, I wanted to know how others do it, like storing images as a blob or other techniques, but after my post, I think that in my case this would definitely not be the way to go. As for the redirection, perhaps I could use it to trigger an initial request to generate the images before a user even visits the page, and thus save a few ms. I hadn't thought of that.

Thanks for your insight @ab

#43 mORMot 2 » MVC - multilingual and image(s) » 2024-05-24 11:01:25

flydev
Replies: 5

Hi there,

My first question is what would be the most optimized way to implement a multilingual setup based on mvc-blog example?


My second question is about images, I was just wondering how are you used to handle image(s) in post on your side?

On my side, I have deployed a standalone imgproxy server; An user can then insert in HTML content code a shortcode, for example `{{img="/blurred/image1.jpg" alt="..."}}` (`blurred` is a preset and handled by imgproxy).
Once the article is saved, a new folder is created using article's ID as folder name - eg. `/.static/images/{{ID}}` - and the image is uploaded into this folder - as the image server point to `/.static/images`, he can then handle images variations, cache and serve webp images along some custom presets. Everything works very good and there is not impact, SEO practices at 100%.

Thanks smile

#44 Re: mORMot 2 » Delphi debugger crash when inspecting DocVariant » 2024-05-18 08:40:28

@Lauri I didn't tested on Delphi 2007, but the bugs are still there in Delphi 10, 11 and 12, and only if an invalid variant value exist.

If the variant is valid, you can inspect it and move your mouse hover it, but if you are stepping through code and move cursor hover an invalid variant, the IDE hang and you have to kill it; Killing LSP process only do not work.

The only way I found to avoid the crash, is to move the cursor out of the IDE and starting debugging using keyboard's shortcuts, inspector will show variant (valid/invalid) values. Also, when an AV is triggered, use the keyboard, not the mouse.

That doesn't happen in Lazarus. Years of frustration yes, but if there was only this issue, we could live with it **clown emoji here**

#45 Re: mORMot 2 » Object lists » 2024-03-29 10:40:34

Take this simple example to get started.

type
  TOrmMyObject = class(TOrm)
    FTitle: : RawUtf8;
    FStatus: int32;
  published
    property Title: RawUtf8 read FTitle write FTitle;
    property Status: int32 read FStatus write FStatus;
  end;

// ...

procedure GetIList;
var 
  list: IList<TOrmMyObject>;
  obj: TOrmMyObject;
begin
  if FHttpClient.Client.Orm.RetrieveIList(TOrmMyObject, list, 'ID,status,title') then
  begin
    ConsoleWrite('retrieved % objects', [list.count]);
    for obj in list do
      ConsoleWrite('Obj ID %: title=%, status=%', [obj.ID, obj.title, obj.status]);
  end;
end;

A note about finding features in mormot, when I started with mormot I was used to go in the v1 documentation and using text search to find keywords; You can apply the same flow with the source-code which is nice commented, eg. in the mormot/src folder, just use a tool to search keyword in *.pas files. You will find also a lot of implementation infos by reading the test code from the mormot2/test folder. You can also keep the v1 source code at hand to get more samples adapting them to pure mormot2.

Clipboard-03-29-2024-01.jpg

v1 doc: https://synopse.info/files/html/Synopse … l#TITLE_81
source: https://github.com/synopse/mORMot2/blob … ctions.pas

Hope it help.

#46 Re: mORMot 2 » High CPU usage when frames are received » 2023-09-30 20:38:11

Thanks for your input. I will post the result for the science.

#47 Re: mORMot 2 » High CPU usage when frames are received » 2023-09-30 20:33:52

Good to hear that.

It was an instance of a bidir TWebSocketAsyncServerRest. I will recompile the project next week and upload all the test clients while keeping the server running in the debugger.

#48 Re: mORMot 2 » High CPU usage when frames are received » 2023-09-30 19:41:18

@ColdZer0, is everything still ok?

This is what happens after 14 hours, plus the console is not updating anymore.

I am asking because i ran into the same issue in the end of july while testing the new async server, and I want to give another try. I had no junk network traffic as the network is filtered only on known static ips but almost all clients are connecting through 4G routers with sometime high latency and/or random disconnections. The console was "stuck" after ~6h with around 170 clients sending 1 or more requests per secs.

Thanks you both for the debugging and fixes smile

#49 Re: mORMot 2 » [SOLVED] OnWebSocketsClosed event is not triggered on client side » 2023-07-13 07:18:04

FPC => OK

On Delphi 11, after adding ISDELPHI11 directive on top, cleaning dcu, it's OK.

#50 mORMot 2 » [SOLVED] OnWebSocketsClosed event is not triggered on client side » 2023-07-12 08:28:43

flydev
Replies: 2

Hi,

it seem that OnWebSocketsClosed is not triggered on client side when compiled with last mORMo2 version.

I have the issue on Delphi 11, still not tested on FPC. I tested it with `rest-websockets` project from the example folder, compiling the server and client on a fresh clone.

You can find the client code with `OnWebSocketsClosed` implemented there:

https://gist.github.com/flydev-fr/93902 … a488e1edae

When compiling only the client with mORMot2 (commit fa3cd43097e1e9a89edee94ad0282b17817668a6 from May 12) I can get it working.

Board footer

Powered by FluxBB