ledergec / rapidschema

Abstraction Layer on Top of Rapidjson which allows easy and efficient Json Schema Parsing
Other
3 stars 0 forks source link

Compare against ThorsSerializer #26

Open mristin opened 5 years ago

mristin commented 5 years ago

Hi @ledergec , Interesting work!

Have you seen this de/serializer: https://github.com/Loki-Astari/ThorsSerializer ? It might be worth highlighting the differences with your project or at least listing it as related work.

ledergec commented 5 years ago

Hey Marco,

Das Projekt hani sälber nanig gfunde. Isch das die library vo dir?

Was i nanig checked han isch, öb mer beliebig veschachtle chan. Zb än array vo structs?

Was cool isch, isch das mer chan binary und json serialisiere.

Was sicher än underschiid isch, isch das es nöd uf en standard usetzt, wo äs ganzes ökosystem dezue existiert.

Ich dänke, das mer s'schema sött chöne in c++ oder in json schribe. Es git imho awändige für beidi richtige.

Zudem häts da die macro magic wo chli hässlich isch. Naja, ich bruche defür tmp aber das ganze isch defür au flexibler. Verschideni encodings, mer chan fiingranular entscheide welli teil objekt wie sölled checked werde (strict).

So long... Laddy

Marko Ristin notifications@github.com schrieb am Mi., 6. März 2019, 02:48:

Hi @ledergec https://github.com/ledergec , Interesting work!

Have you seen this de/serializer: https://github.com/Loki-Astari/ThorsSerializer ? It might be worth highlighting the differences with your project or at least listing it as related work.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ledergec/rapidschema/issues/26, or mute the thread https://github.com/notifications/unsubscribe-auth/APYDeX6f_mhZAXNOxlwcYqqVWOzOIyPyks5vTx5kgaJpZM4bf349 .

mristin commented 5 years ago

Hoi @ledergec

Ganz schön ungwohnt Schwiizertüütsch uf github zschriebe :)

Das Projekt hani sälber nanig gfunde. Isch das die library vo dir?

Nei, es isch uf de Lischte vo related projects / related work vo eusem Serialisierigsprojekt (mapry), die ich ständig erwiitere. ThorSerializer hani, glaubi, öppe es Jahr her oder so gseh. Mag mi nümm erinnere, sorry, aber isch scho e Weile her. Ich ha kei Ahnig, wieviel Lyyt de ThorSerializer tatsächlich bruuched und ob es Problem gitt -- mier händs nie id Firma bruucht, da mier immer inere polyglote Umgebig händ müsse programmiere.

Was i nanig checked han isch, öb mer beliebig veschachtle chan. Zb än array vo structs?

Luut de Dokumentation wär das möglich: https://github.com/Loki-Astari/ThorsSerializer/blob/master/doc/usage.md#standard-containers

Was cool isch, isch das mer chan binary und json serialisiere. Was sicher än underschiid isch, isch das es nöd uf en standard usetzt, wo äs ganzes ökosystem dezue existiert. Ich dänke, das mer s'schema sött chöne in c++ oder in json schribe. Es git imho awändige für beidi richtige. Zudem häts da die macro magic wo chli hässlich isch. Naja, ich bruche defür tmp aber das ganze isch defür au flexibler. Verschideni encodings, mer chan fiingranular entscheide welli teil objekt wie sölled checked werde (strict).

Ich würd uf jede Fall die Punkt im Readme erwähne, da sich die Frag schnell mal ufdrängt, warum öpper de einte oder de andere Serializer bruuche sott. Wenn ich e Benutzer wäre, würde mich natürli freue, wenn ihr die zwei Projekt irgendwie vereine chönnted. Aber es isch natürli ned immer so eifach, und viilicht wänd ihr zwei verschiedeni Segment vo Aawendige bediene, wo sich gar ned vereine lönd.

Falls dich no euses Projekt fürs Serialisiere vo Objektgraphen (mapry) interessiert, chasch mal inneguxe (es isch würkli no id Frühphase -- also kei Readme etc.): https://github.com/Parquery/mapry/tree/mristin/initial-version. Wahrschiinli isch es für dich nur interessant, wie die Schemas und de generierte Code uusxend.

Die Test-Schemas und de dazu generierte Code befinded sich in: https://github.com/Parquery/mapry/tree/mristin/initial-version/tests/cases

Zum Biispiel: https://github.com/Parquery/mapry/blob/mristin/initial-version/tests/cases/general/class_ref_in_embed/schema.json https://github.com/Parquery/mapry/tree/mristin/initial-version/tests/cases/general/class_ref_in_embed/cpp/test_generate https://github.com/Parquery/mapry/tree/mristin/initial-version/tests/cases/general/class_ref_in_embed/py/test_generate

Wie gseit, alles no i d Frühphase. Zum Biispiel, ich überleg mir no, die Settings, wie de Code generiert werde sott, us d Schema ussezneh, so dass mer per Repo oder Projekt (oder Subprojekt) e separati Settings-Datei schriebt. Das isch nützlich, da die Settings fascht nie sich änderet, während mr viele Schemas cha ha. Es bliibt no viil Holz zhacke (Python fertig debugge, Golang generator, Jsonschema generator, die CLI executables und die Distribution uf pypi).

Falls so öppis für REST APIs bruuchsch, mier hend au en ähnliche Code generator dafür gschriebe: https://github.com/Parquery/swagger-to

Für eu isch das höchstwahrschiinli ned relevant, da ihr im embedded setting operieret.

Liebi Grüss, Marko