Mormot 2 Installation

Für Fragen von Einsteigern und Programmieranfängern...
Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Mormot 2 Installation

Beitrag von Andy Nightingale »

Hallo Leute ich wollte mal nachfragen ob sich jemand in Mormot2 auskennt. Ich habe die Komponente installiert. Es läuft wie jede Komponente klar durch wird kompiliert und Lazarus fährt runter und wieder hoch.- wie immer aber in der Komponentenleiste ist absolut nicht zu sehen.-auch nicht in der Komponentenliste. Was ist da falsch?
Grüße
jo.png
jo.png (8.34 KiB) 497 mal betrachtet

Benutzeravatar
theo
Beiträge: 11144
Registriert: Mo 11. Sep 2006, 19:01

Re: Mormot 2 Installation

Beitrag von theo »

mormot2 ist anscheinend ein reines Laufzeitpackage.
mormot2ui sollte Komponenten in der IDE zeigen.

Ich habe sonst keine Ahnung von dem Package.
Dateianhänge
mormot_laz.png
mormot_laz.png (165.84 KiB) 493 mal betrachtet

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Mormot 2 Installation

Beitrag von Andy Nightingale »

Hallo Theo,
das heißt das dies dynamisch immer wieder geladen wird.-richtig? Ich habe jetzt gedacht kompiliere alles nochmal und schaue was passiert.- Jetzt auf einmal kommt folgende Fehlermeldung:

lazarus.pp(170,1) Error: Can't open object file: ..\..\static\i386-win32\deflate.o
lazarus.pp(170,1) Warning: Object ..\..\static\i386-win32\trees.o not found, Linking may fail !

wo ist denn der Pfad? Kann ich irgendwo das angeben? Es scheint als ob Mormot in Static ein oder mehrere Dateien sucht und diese aber nicht findet. Ich mußte in der Installation eine Static(Ordner) anlegen.-das habe ich alles gemacht, aber es scheint als ob Mormot woanders sucht....merkwürdig.

Benutzeravatar
theo
Beiträge: 11144
Registriert: Mo 11. Sep 2006, 19:01

Re: Mormot 2 Installation

Beitrag von theo »

Andy Nightingale hat geschrieben: Fr 30. Jan 2026, 13:12 das heißt das dies dynamisch immer wieder geladen wird.-richtig?
Nein, es heisst, dass es bei mormot2 keine visuellen Komponenten gibt, also nichts in der Komponentenleiste zu sehen ist.
Bei mormot2ui vermutlich schon.

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Mormot 2 Installation

Beitrag von Andy Nightingale »

Hi Theo,
ja das ui hab ich ja auch installiert.-wenns da aber nichts gibt, wie nutze ich das dann? .-komisch

Benutzeravatar
theo
Beiträge: 11144
Registriert: Mo 11. Sep 2006, 19:01

Re: Mormot 2 Installation

Beitrag von theo »

Da musst du jemanden fragen, der sich damit auskennt. Ich glaube Mormot ist nicht so simpel.
Wahlweise auch die Suche benutzen. Z.B.
viewtopic.php?p=148403#p148403

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7108
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Mormot 2 Installation

Beitrag von af0815 »

Mormot2 hat normalerweise immer eine Beschreibung in der genau steht, wie man installiert und auch den ersten Test macht. Entweder auf der HP oder in den mitgelieferten Dokumenten. Und man muss sich an die halten, sonst gibt's nur Ärger und Probleme.

Und am besten von der originalen Page, nicht unbedingt über den Paket Manager. Gerade bei der Dynamik vom Lazarus und besonders Mormot2 sollte man auf letzstand sein.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Mormot 2 Installation

Beitrag von Andy Nightingale »

af0815 hat geschrieben: Fr 30. Jan 2026, 14:08 Mormot2 hat normalerweise immer eine Beschreibung in der genau steht, wie man installiert und auch den ersten Test macht. Entweder auf der HP oder in den mitgelieferten Dokumenten. Und man muss sich an die halten, sonst gibt's nur Ärger und Probleme.

Und am besten von der originalen Page, nicht unbedingt über den Paket Manager. Gerade bei der Dynamik vom Lazarus und besonders Mormot2 sollte man auf letzstand sein.
Das habe ich alles gemacht. Du sagtest doch einmal das du mit Mormot arbeitest.-ok wie macht man das? Nur ein kleines Beispiel. Danke dir.

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Mormot 2 Installation

Beitrag von Andy Nightingale »

theo hat geschrieben: Fr 30. Jan 2026, 14:02 Da musst du jemanden fragen, der sich damit auskennt. Ich glaube Mormot ist nicht so simpel.
Wahlweise auch die Suche benutzen. Z.B.
viewtopic.php?p=148403#p148403
Hi Theo, ich habe das damals aufgegeben, da genau danach wieder Fehler auftraten...Dachte die neue Version würde etwas ändern...tat es leider nicht. Ich kenne niemand was damit arbeitet.-habe gehofft das hier ein Profi ist und damit arbeitet.-aber leider nicht.ok Danke dir.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7108
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Mormot 2 Installation

Beitrag von af0815 »

Andy Nightingale hat geschrieben: Fr 30. Jan 2026, 14:24
af0815 hat geschrieben: Fr 30. Jan 2026, 14:08 Mormot2 hat normalerweise immer eine Beschreibung in der genau steht, wie man installiert und auch den ersten Test macht. Entweder auf der HP oder in den mitgelieferten Dokumenten. Und man muss sich an die halten, sonst gibt's nur Ärger und Probleme.

Und am besten von der originalen Page, nicht unbedingt über den Paket Manager. Gerade bei der Dynamik vom Lazarus und besonders Mormot2 sollte man auf letzstand sein.
Das habe ich alles gemacht. Du sagtest doch einmal das du mit Mormot arbeitest.-ok wie macht man das? Nur ein kleines Beispiel. Danke dir.
Ich habe mich etwas in Mormot eingearbeitet, dann den Overhead beurteilt und bin zu dem Schluss gekommen, das es für das Projekt mehr als Oversized ist. Ich habe da mit Mormot und tiOPF gearbeitet, tiOPF dann zuerst verworfen, weil es nicht klar war, wie die Zukunft sein wird.

Generell solltest du dir die Anleitung einmal von den Grundzügen ansehen, ob Mormot was für dich ist. Das ist ein Schwergewicht, aber sehr flexibel auch über verschiedene Grenzen. Für die meisten Client Server Sachen zu komplex und zuviel Overhead. Ausser man braucht das, weil die Applikation vom Umfang her unbedingt braucht.

Zum Herumspielen und Testen sind die Beispiele sehr gut und auch die Doku dazu.

Installation:
https://github.com/synopse/mORMot2 dort im Readme genau nach Anleitung vorgehen. Hast du den Punkt 1 genau beachtet ? Da muss man unbedingt die mormot2static Pakete richtig einbinden (hin kopieren) und zwar am beschriebenen Ort. Ansonsten gibt es nur ominöse Fehler bezüglich diverser Dateien. Mormot ist genau auf die Dateien von den Versionen hin abgestimmt.

Edit: Erwarte bei Mormot keine GUI - das ist Hardcorekodieren, nix kliki bunti.

Edit2:
Installation auf einem "Lazarus 4.5 (rev lazarus_4_4-43-gb42c5e00a6) FPC 3.2.3 x86_64-linux-qt5" dauert ca. 10 Minuten (inkl. Download) mit Testlauf. Gerade getestet, exakt laut Anleitung.

Start:
andi@desktop:~/data/pascal/GITHUB/mormot2$ ls -l
insgesamt 76
-rw-rw-r-- 1 andi andi 3564 Jän 30 17:52 CHANGELOG.md
-rwxrwxr-x 1 andi andi 362 Jän 30 17:52 commit.sh
-rw-rw-r-- 1 andi andi 2183 Jän 30 17:52 CONTRIBUTORS.md
drwxrwxr-x 3 andi andi 4096 Jän 30 17:52 doc
drwxrwxr-x 2 andi andi 4096 Jän 30 17:52 docs
-rw-rw-r-- 1 andi andi 1086 Jän 30 17:52 DONATE.md
drwxrwxr-x 12 andi andi 4096 Jän 30 17:52 ex
-rwxrwxr-x 1 andi andi 822 Jän 30 17:52 get_latest_static.sh
-rwxrwxr-x 1 andi andi 49 Jän 30 17:52 kompare.sh
-rw-rw-r-- 1 andi andi 5884 Jän 30 17:52 LICENCE.md
drwxrwxr-x 3 andi andi 4096 Jän 30 17:52 packages
-rw-rw-r-- 1 andi andi 10356 Jän 30 17:52 README.md
drwxrwxr-x 4 andi andi 4096 Jän 30 17:52 res
drwxrwxr-x 16 andi andi 4096 Jän 30 17:52 src
drwxrwxr-x 20 andi andi 4096 Jän 30 17:53 static
drwxrwxr-x 4 andi andi 4096 Jän 30 18:05 test
Ende:
mORMot2 Regression Tests
--------------------------


1. Core units

1.1. Core base:
- Records: 2,110 assertions passed 367us
- TSynList: 3,007 assertions passed 18us
- TDynArray:
.... ...... .........
Time elapsed for all tests: 46.32s
Performed 30 Jan 2026, 17:59:59 by andi on desktop

Total assertions failed for all test suits: 0 / 173,939,560
! All tests passed successfully.
17:52 bis 17:59 - Ok, sind nicht ganz 8 Minuten. Aber git hat auch ein wenig für den Download gebraucht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Mormot 2 Installation

Beitrag von Andy Nightingale »

af0815 hat geschrieben: Fr 30. Jan 2026, 16:48
Andy Nightingale hat geschrieben: Fr 30. Jan 2026, 14:24
af0815 hat geschrieben: Fr 30. Jan 2026, 14:08 Mormot2 hat normalerweise immer eine Beschreibung in der genau steht, wie man installiert und auch den ersten Test macht. Entweder auf der HP oder in den mitgelieferten Dokumenten. Und man muss sich an die halten, sonst gibt's nur Ärger und Probleme.

Und am besten von der originalen Page, nicht unbedingt über den Paket Manager. Gerade bei der Dynamik vom Lazarus und besonders Mormot2 sollte man auf letzstand sein.
Hallo 0815,
ja genau so habe ich es auch gemacht.-nach Vorschrift. Nicht auf Linux wie du sondern Windows.....bei mir geht es nicht. Ich gebe dieses Mormot2 auf. Macht für mich keinen Sinn.
Schön für dich. Ich suche mir eine andere Komponente aus. Danke dir für deinen Test.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7108
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Mormot 2 Installation

Beitrag von af0815 »

Es steht auch in den ReadMe's das es mit fpc 3.2.2 (stable) nicht geht! Es muss aufgrund eines Bugs im FPC mindestens der Fixes (3.2.3) sein.

Windows ist mir jetzt klar, aber welchen FPC und Lazarus hast du ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

paweld
Beiträge: 103
Registriert: So 11. Jun 2023, 16:01
OS, Lazarus, FPC: Lazarus trunk, FPC fixes

Re: Mormot 2 Installation

Beitrag von paweld »

Es hängt davon ab, wofür Sie „mORMot” benötigen.
Ich nutze es derzeit nur für den HTTP(S)-Server (ohne ORM-Elemente – für mich ist das schwarze Magie :-) ) und json (de)serialize. Der Hauptvorteil ist, dass es effizient ist: sowohl als http(s)-Server - im Vergleich zu „Indy” oder „fphttp”, als auch als json-Parser - im Vergleich zu „fpjson”.
Beispiel für json:

Code: Alles auswählen

fp load from json: 1232ms | 151024 items
fp save to json: 6127ms
mORMot load from json: 196ms | 151024 items
mORMot save to json: 35ms
Code:

Code: Alles auswählen

program Project1;

{$mode objfpc}{$H+}
{$apptype console}

uses
  Classes, SysUtils, DateUtils,
  fpjson, fpjsonrtti,
  mormot.core.text, mormot.core.json;

type

  { TCityItem }

  TCityItem = class(TCollectionItem)
  private
    Fcountry_code: String;
    Fcountry_id: Integer;
    Fcountry_name: String;
    Fid: Integer;
    Flatitude: String;
    Flongitude: String;
    Fname: String;
    Fstate_code: String;
    Fstate_id: Integer;
    Fstate_name: String;
    FwikiDataId: String;
  published
    property id: Integer read Fid write Fid;
    property name: String read Fname write Fname;
    property state_id: Integer read Fstate_id write Fstate_id;
    property state_code: String read Fstate_code write Fstate_code;
    property state_name: String read Fstate_name write Fstate_name;
    property country_id: Integer read Fcountry_id write Fcountry_id;
    property country_code: String read Fcountry_code write Fcountry_code;
    property country_name: String read Fcountry_name write Fcountry_name;
    property latitude: String read Flatitude write Flatitude;
    property longitude: String read Flongitude write Flongitude;
    property wikiDataId: String read FwikiDataId write FwikiDataId;
  end;

  { TCityList }

  TCityList = class(TCollection)
  private
    function GetItems(Index: Integer): TCityItem;
    procedure SetItems(Index: Integer; AValue: TCityItem);
  public
    constructor Create;
    function Add: TCityItem;
    procedure mORMotLoadFromJson(json: String);
    function mORMotSaveToJson: String;
    procedure fpLoadFromJson(json: String);
    function fpSaveToJson: String;
    property Items[Index: Integer]: TCityItem read GetItems write SetItems;
  end;

{ TCityList }

function TCityList.GetItems(Index: Integer): TCityItem;
begin
  Result := TCityItem(inherited Items[Index]);
end;

procedure TCityList.SetItems(Index: Integer; AValue: TCityItem);
begin
  Items[Index].Assign(AValue);
end;

constructor TCityList.Create;
begin
  inherited Create(TCityItem);
end;

function TCityList.Add: TCityItem;
begin
  Result := inherited Add as TCityItem;
end;

procedure TCityList.mORMotLoadFromJson(json: String);
begin
  Clear;
  ObjectLoadJson(Self, json);
end;

function TCityList.mORMotSaveToJson: String;
begin
  Result := ObjectToJson(Self, []);
end;

procedure TCityList.fpLoadFromJson(json: String);
var
  jds: TJSONDestreamer;
begin
  Clear;
  jds := TJSONDestreamer.Create(nil);
  jds.Options := [jdoNullClearsProperty];
  jds.JSONToCollection(json, Self);
  jds.Free;
end;

function TCityList.fpSaveToJson: String;
var
  js: TJSONStreamer;
begin
  js := TJSONStreamer.Create(nil);
  Result := js.CollectionToJSON(Self);
  js.Destroy;
end;

var
  dt: TDateTime;
  filename, s: String;
  citylist: TCityList;
  sl: TStringList;

begin
  filename := 'cities.json';
  sl := TStringList.Create;
  sl.LoadFromFile(filename);
  citylist := TCityList.Create;
  //fp
  dt := Now;
  citylist.fpLoadFromJson(sl.Text);
  WriteLn('fp load from json: ', MillisecondsBetween(Now, dt), 'ms | ', citylist.Count, ' items');
  dt := Now;
  s := citylist.fpSaveToJson;
  WriteLn('fp save to json: ', MillisecondsBetween(Now, dt), 'ms');
  //mormot
  dt := Now;
  citylist.mORMotLoadFromJson(sl.Text);
  WriteLn('mORMot load from json: ', MillisecondsBetween(Now, dt), 'ms | ', citylist.Count, ' items');
  dt := Now;
  s := citylist.mORMotSaveToJson;
  WriteLn('mORMot save to json: ', MillisecondsBetween(Now, dt), 'ms ');
  //
  citylist.Free;
  sl.Free;
  ReadLn;
end. 
Die JSON-Datei stammt aus diesem Archiv: https://github.com/dr5hn/countries-stat ... s/v2.6.zip
Grüße / Pozdrawiam
paweld

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Mormot 2 Installation

Beitrag von Andy Nightingale »

af0815 hat geschrieben: Sa 31. Jan 2026, 08:48 Es steht auch in den ReadMe's das es mit fpc 3.2.2 (stable) nicht geht! Es muss aufgrund eines Bugs im FPC mindestens der Fixes (3.2.3) sein.

Windows ist mir jetzt klar, aber welchen FPC und Lazarus hast du ?
Hallo 0815,
ich habe Lazarus 4.4 und FPC 3.2.2 ich finde keine 3.2.3. das momentane neuste Release ist die 3.2.2 sagt zumidest die FPC Seite: https://www.freepascal.org/download.html
Grüße

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7108
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Mormot 2 Installation

Beitrag von af0815 »

Andy Nightingale hat geschrieben: Sa 31. Jan 2026, 12:05
af0815 hat geschrieben: Sa 31. Jan 2026, 08:48 Es steht auch in den ReadMe's das es mit fpc 3.2.2 (stable) nicht geht! Es muss aufgrund eines Bugs im FPC mindestens der Fixes (3.2.3) sein.

Windows ist mir jetzt klar, aber welchen FPC und Lazarus hast du ?
Hallo 0815,
ich habe Lazarus 4.4 und FPC 3.2.2 ich finde keine 3.2.3. das momentane neuste Release ist die 3.2.2 sagt zumidest die FPC Seite: https://www.freepascal.org/download.html
Grüße
Wenn man einen anderen FPC braucht, so kann man FPCUpdeluxe für die Installation verwenden. Der Vorteil dabei - der kann auch FPC/Lazarus Versionen parallel installieren. Einzige Einschänkung - immer mit dem Symbol vom Desktop starten, NICHT anders.

https://wiki.lazarus.freepascal.org/fpcupdeluxe
https://github.com/LongDirtyAnimAlf/fpc ... e/releases dort (aktuell) Release v2.4.0h of fpcupdeluxe verwenden, am Ende dieses Beitrags "show all assets" aktivieren und für 64Bit Windows die "fpcupdeluxe-x86_64-win64.exe" downloaden.
Bei WIndows lädt sich fpcupdeluxe alles auch selbst herunten, was er noch braucht. Installtionsverzeichnis DARF keine Leerzeichen oder Sonderzeichen beinhalten (ist keine Einschränkung vom fpcupdeluxe, sondern von FPC/Lazarus, deren Tools manchmal damit Probleme haben).
Einfach Aufrufen, das Verzeichnis auswählen, dann die Versionen was man haben will und (ich mache es so) zuerst den FPC installieren, dann erst den Lazarus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten