LINUX.ORG.RU

yyjson 0.10.0

 , , ,

yyjson 0.10.0

1

4

Состоялся выпуск 0.10.0 высокопроизводительной библиотеки yyjson, написанной на языке C (стандарт C89), распространяемой по лицензии MIT и предназначенной для чтения и модификации данных в формате JSON (RFC 8259).
Библиотека также поддерживает RFC JSON Pointer, JSON Patch и JSON Merge Patch.

Список изменений:

  • добавлена функция yyjson_locate_pos() для получения номера строки и столбца при ошибке парсинга;
  • улучшены сообщения об ошибках при чтении JSON;
  • исправлена ошибка парсинга чисел с опцией YYJSON_READ_NUMBER_AS_RAW.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

yy<...>? а где копытные? в смысле, flex/bison?

demidrol ★★★★★
()

The simdjson’s new On Demand API is faster if most JSON fields are known at compile-time. This benchmark project only checks the DOM API, a new benchmark will be added later.

Написал автор 2 года назад. Но не добавил. А почему не добавил - очевидно.

fluorite ★★★★★
()
Последнее исправление: fluorite (всего исправлений: 1)

JSON

gigabytes

«цифровой котёл цифрового ада»©

token_polyak ★★★★★
()

Почитал код, весьма любопытненько, branchless clzll и быстрый парсинг экранированных строк может быть полезен

mittorn ★★★★★
()

Фу, сишка.

ox55ff ★★★★★
()

стандарт C89

Даже ядро linux перешло на стандарт C11.

И при этом версия 0.10.0.

Я понимаю крупные конторы с 12-ти летним опозданием переходят на новые стандарты плюсов, написав при этом целые тома о достоинствах и возможных проблемах.

Но эти.

Мне до них, в плане ретроградства, как до луны раком...

x86_64 ★★★
()
Ответ на: комментарий от mittorn

не соберёшь компиляторами 25летней давности

Пусть ретрограды страдают. Или наслаждаются, возможно.

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Glaze: 140 files, 39691 LOC, 1598 comment

yyjson: 19 files, 22031 LOC, 2968 comment

Как к этому относиться? C++, который, вроде как, должен быть более выразительным — вдвое жирнее. Ещё и комментариев вдвое меньше.

Вообще-то мне C++ нравится, но тут как-то задумался.

knovich
()
Последнее исправление: knovich (всего исправлений: 2)
Ответ на: комментарий от x86_64

Даже ядро linux перешло на стандарт C11.

А curl перешёл только на C99 и то — частично.

https://daniel.haxx.se/blog/2022/11/17/considering-c99-for-curl/

И что ? Ядро всё равно пишется не на hosted, а на freestanding версии стандарта. Более того ядро пишется на версии стандарта без strict aliasing.

Поэтому «переход» на C11 мало что говорит.

Artsi0m
()
Последнее исправление: Artsi0m (всего исправлений: 2)
Ответ на: комментарий от dataman

По факту же стражают чаще всего пользователи c++20+ из-за раздутого stl. Я даже удивлён, что glaze не упирается в синхронизацию потоков на каком-нибудь очередном std::shared_ptr и действительно чуть быстрее (да, имея огромные возможности c++ лишь чуть чуть быстрее сишного проекта, напичканного костылями под msvc6 и кучей goto)

mittorn ★★★★★
()
Ответ на: комментарий от knovich

Замечу, что сишный проект напичкан так же кучей костылей под древние платформы и при этом остаётся эффективным и читабельным. Мне тоже нравится c++, но без STL и move-семантики.

mittorn ★★★★★
()
Ответ на: комментарий от x86_64

yyjson 1159 LOC / file

Откровенно говоря, там библиотека из двух файлов состоит, остальное — всякие тесты, так что честнее написать около 10000 LOC/file.

А вот Glaze в самом деле состоит из сотни файлов, и все они как-то друг на друга ссылаются.

knovich
()

все фигня. Без статической рефлексии в C++26 нормальную библиотеку для жсона не запилишь.

И вообще надо дизайнить софт таким образом, чтобы свести необходимость парсинга чего бы то ни было к минимуму. А если все-таки надо читать или писать какую-то структуру данных, то делать это прямым кастом ее заmmap-ленного двоичного представления.

Lrrr ★★★★★
()
Ответ на: комментарий от Lrrr

А ещё стоит отметить что json - неудобный формат в принципе, как в плане синтаксиса, так и в плане структуры, да и вообще парсить и писать текстовые форматы - огромный оверхед

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

На что только не готовы пойти кожаные ублюдки, чтобы не утратить контроль над содержимым файлов. Нет бы упакованные битовые поля, так приходится тратиться и на избыточность при хранении и на потери при парсинге.

BydymTydym
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.