You decide what to change next
I’m working on Fast-XML-Parser v5 from a long time. It’s Parser is almost ready but before finalizing the changes and approach, I want you to control this release.
FXP parser is now broken down in 3 separate units so user can control them as per their convenience.
- SourceReader
- Processor
- OutputBuilder
SourceReader reads the data and give it to the processor. It can read the data from a buffer, stream, string, or some encrypted encoded data of your choice. You can fully control it. Now you can decide if CPU is more important or memory.
Output builder is responsible to create the final data structure. It can be a JSON format, YAML, Nimn. You can store the output in memory, or write it to the stream. You can control if an attribute or a tag should be skipped or how their values should be parsed. Don’t worry, it’s easy.
In the upcoming version, I’m reducing the configuration as much as possible so they confuse you less but still keep the process customizable as per your need. Every unit can be configured separately.
Expected Release date
Well! I can’t commit any date right now. Since I don’t want to compromise with the performance, I rewrite a lot of code multiple times until I achieve the desire throughput. This makes the process slow. On top of that, I’ve limited time for open-source. So sometimes I need to pause the development for many months.
Parser part is almost completed. I’ve to just brainstorm on jpath. I want to provide the better way of providing the jpath that can support more features in future. Once it is done, I need to sync all the source readers and output builders that I’ll provide within the package by default. However, you can create your own as well.
Once the parser is done, my plan is to embed the validator within the parser but with flexible and strict rules of throwing exception. Finally, I will work on builder so that it can also support external output builder. This can help you to work with big files.
Somewhere in between, I need to sync the patches developed after I cut v5 branch. And complete the tests. It’ll be a big set.
So keep checking this page once in a month for new updates. In the next update, I’ll give hint about changes in configuration. So you can give me your suggestions.
If you have any suggestion or question then let’s discuss.
Your feedback is really important. So I can improve my future articles and correct what I have already published. You can also suggest if you want me to write an article on particular topic. If you really like this blog, or article, please share with others. That's the only way I can buy time to write more articles.