Alcinoe icon indicating copy to clipboard operation
Alcinoe copied to clipboard

XML/JSON: Tiny.Library collaboration

Open d-mozulyov opened this issue 3 years ago • 4 comments

Hello

I analyzed the sources of your libraries and came to the conclusion that the issue of optimization is very important for you. I have been programming in Delphi for over 20 years and spend a lot of time writing high-performance code. You can verify this by analyzing the benchmarks in my open source projects.

I would like to suggest that you use the Tiny.Library - it contains a lot of lightweight and high-performance code that works with text, data streams, RTTI, memory, generics and more. It is planned to supplement the library with routine testing, server applications, marshalling and more.

In fact, the library is a combination of the following libraries:

Nowadays there are not enough XML/JSON parsers and writers. Most Delphi parsers use standard strings for convenience. I think that in Tiny.Library this approach can be implemented, but as a superstructure on top of the low-level approach. I liked the approach in PugiXML, when addressing to pre-allocated memory occurs - this significantly speeds up the parsing process, especially in multithreaded applications, when each string allocation leads to the manager blocking. The library currently supports ALL possible XML encodings, including ALL possible BOMs. An automatic step-by-step encoding conversion has been implemented, which allows you to parse documents even several gigabytes in size, using only a few kilobytes of RAM. In addition, high-level functions are implemented for working with strings in pre-allocated memory, for example, for converting to a number or date - this will make it easy and convenient to use the fast parser in commercial products.

Writing high-performance code takes a lot of time and effort. The cost of making a mistake is very high. Since I am not an expert in XML/JSON, it is difficult for me to decide and take enough time to implement full-fledged parsers and writers. I need to collaborate with an expert who can consult, review code, and write automated tests. I suggest you consider this option. Contacts are listed in library units.

d-mozulyov avatar Oct 16 '20 16:10 d-mozulyov

Димон, будет большой ошибкой, если автор будет использовать твою кривую поделку в своей библиотеке.

ghost avatar Oct 17 '20 13:10 ghost

tumaso,

Если Вы нашли ошибку или хотите внести изменения, улучшающие библиотеку - просьба написать об этом в соответствующем проекте Если возникли сложности в понимании, как пользоваться кодом - рекомендую обратиться к документации или примерам, находящимся в репозитории Спасибо, что остаётесь неравнодушными к моим библиотекам!

d-mozulyov avatar Oct 17 '20 19:10 d-mozulyov

Ты сначала сделай код stable, а уже потом fast. Кому нужен этот самый fast, если код гoвно?

ghost avatar Oct 17 '20 20:10 ghost

tumaso,

Если у Вас есть примеры нестабильного кода - с большим удовольствием увижу их в разделе "Issues" соответствующего репозитория Спасибо за сотрудничество!

d-mozulyov avatar Oct 17 '20 21:10 d-mozulyov