Информация об изменениях

Сообщение YAS: Yet Another Serialization от 13.10.2012 6:55

Изменено 04.03.2018 11:37 niXman

YAS: Yet Another Serialization
еще одна библиотека сериализации для С++. проживает тут.

YAS был создан как замена boost.serialization из-за непозволительно низкой скорости сериализации.

бинарная сериализация YAS в 3-8 раз быстрее.
текстовая сериализация YAS в 2-3 раза быстрее.
в планах — реализация JSON и BSON.

YAS является 'header only' библиотекой. YAS не зависит от сторонних библиотек или от boost.
YAS предоставляет сериализацию как в/из буфер, так и в/из файл.
YAS может использоваться как на 32ух, так и на 64ех битной архитектурах. при этом, архивы сериализации полностью переносимы в обоих направлениях.
YAS требует от компилятора поддержки C++11.
YAS умеет создавать архивы сериализации без информации о архиве(версия/тип/разрядность). теоретически, YAS совместим с boost.serialization в режиме 'без заголовка'. на практике не проверялось.

YAS поддерживается следующими компиляторами:
    GCC : 4.6.3, 4.7.0, 4.7.1, 4.7.2
    MinGW: 4.6.3, 4.7.0, 4.7.1, 4.7.2
    Clang: 3.0
    Intel: (untested)
    MSVC : 2008(partially), 2010, 2011

список сериализуемых типов:
    all built-in types
    enum`s and 'enum class'es
    std::array
    std::bitset
    std::string
    std::wstring
    std::pair
    std::tuple
    std::vector
    std::list
    std::forward_list
    std::map
    std::multimap
    std::set
    std::multiset
    std::unordered_map
    std::unordered_multimap
    std::unordered_set
    std::unordered_multiset
    boost::array
    boost::unordered_map
    boost::unordered_multimap
    boost::unordered_set
    boost::unordered_multiset
    boost::fusion::pair
    boost::fusion::tuple
    boost::fusion::vector
    boost::fusion::list
    boost::fusion::map
    boost::fusion::set
    qbitarray
    qbytearray
    qchar
    qcolor
    qdate
    qdatetime
    qhash
    qlist
    qmap
    qmultihash
    qmultimap
    qpoint
    qpointf
    qpolygon
    qpolygonf
    qqueue
    qrect
    qrectf
    qregion
    qset
    qsize
    qsizef
    qstack
    qstring
    qstringlist
    qtime
    qurl
    quuid
    qvariant
    qvarianthash
    qvariantlist
    qvariantmap
    qvector
    qvector2d
    qvector3d
    qvector4d
    yas::intrusive_buffer
    yas::shared_buffer
(в данный момент? реализована сериализация для всех типов за исключением Qt-типов. т.е. все необходимые условия для сериализации Qt-типов созданы, но тела методов-сериализаторов пусты. если у кого-то есть желание реализовать — велкам!)

пожалуйста, сообщите если вы используете YAS в своем проекте.

успешного использования!
— niXman.
YAS: Yet Another Serialization
(updated 2018-03-04)

еще одна библиотека сериализации для С++. проживает тут.

YAS был создан как замена boost.serialization из-за непозволительно низкой скорости сериализации.

бинарная сериализация YAS в 3-8 раз быстрее.
текстовая сериализация YAS в 2-3 раза быстрее.
в планах — реализация JSON(сделано) и BSON.

YAS является 'header only' библиотекой. YAS не зависит от сторонних библиотек или от boost.
YAS предоставляет сериализацию как в/из буфер, так и в/из файл.
YAS может использоваться как на 32ух, так и на 64ех битной архитектурах. при этом, архивы сериализации полностью переносимы в обоих направлениях.
YAS требует от компилятора поддержки C++11.

YAS поддерживается следующими компиляторами:
    GCC : 4.8.5, ...
    MinGW: 4.8.5, ...
    Clang: 3.8
    Intel: (untested)
    MSVC : 2015, ...

список сериализуемых типов:

и, пожалуйста, сообщите если вы используете YAS в своем проекте

успешного использования!
— niXman.