feat: modular serialization and deserialization subsystem #11

Open
opened 2024-10-30 22:18:44 +01:00 by JeremyStarTM · 0 comments
Owner

Feature description

I regularily need to do (de-)serialization of classes in sideprojects and always manage to get it wrong or break. It should support/do the following:

  • execute migrations
  • work with as many different formats as possible (JSON, XML, YAML, TOML, etc.)
  • very simple to use
  • quick

Feature implementation

For serialization, I propose simply saving the data using the specified format. For deserialization however, I propose loading the serialized data using the specified format into a Map or similar type, executing migrations on it and then converting it into the deserialized class. I am unsure however if this will work.

Feature alternatives

For the deserialization process: Loading the serialized data in the parser's own format, allowing migrations to modify them and then converting the data into a deserialized class. May however bring compatibility issues with it, which we don't want to have.

### Feature description I regularily need to do (de-)serialization of classes in sideprojects and always manage to get it wrong or break. It should support/do the following: - execute migrations - work with as many different formats as possible (JSON, XML, YAML, TOML, etc.) - very simple to use - quick ### Feature implementation For serialization, I propose simply saving the data using the specified format. For deserialization however, I propose loading the serialized data using the specified format into a Map or similar type, executing migrations on it and then converting it into the deserialized class. I am unsure however if this will work. ### Feature alternatives For the deserialization process: Loading the serialized data in the parser's own format, allowing migrations to modify them and then converting the data into a deserialized class. May however bring compatibility issues with it, which we don't want to have.
JeremyStarTM added the
FeatureRequest
New
label 2024-10-30 22:18:44 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: StarOpenSource/Engine#11
No description provided.