Skip to content

Releases: oknenavin/cxon

Release 0.64.0

26 Jul 21:52
Compare
Choose a tag to compare
  • CXON: Support std::flat_map, std::flat_multimap, std::flat_set, std::flat_multiset (C++23)
  • JSON: Introduce json::format_traits::assume_no_escapes parameter - assume that strings to be read/written do not contain escape characters
  • JSON: Correctness parameters can also be set with pre-processor macros CXON_JSON_VALIDATE_STRING_ENCODING, CXON_JSON_VALIDATE_STRING_ESCAPES, CXON_JSON_PRODUCE_STRICT_JAVASCRIPT, CXON_JSON_ASSUME_NO_ESCAPES
  • JSON: Performance optimizations

Release 0.63.0

25 Apr 19:45
Compare
Choose a tag to compare
  • support for boost::charconv

Release 0.62.0

27 May 19:46
Compare
Choose a tag to compare
  • JSON: Simplified serialization for unambiguous std::variant<> types
  • CXON: Fix template parameter shadowing in class/enum implementation macros
  • JSON: Allow CXON_JSON_* macros with empty member list
  • CXON: Fix boost:::container/static_vector<> precondition
  • CXON: Address g++-13 errors (rejects-valid) and warnings (false-positives)
  • JSON: UTF-8 validation optimization

Release 0.61.0

18 Mar 19:13
Compare
Choose a tag to compare
  • CXON: Support for std::unique_ptr
  • CXON: Support for std::shared_ptr
  • CXON: Support for std::span
  • CXON: Named parameters improvements
    • Common named parameters can be defined as a standalone packs
    • napa::make_pack flattens its inputs
    • Named parameters are now comparable
  • JSON: Writing can be optionally buffered
  • CXON: Fix std::optional not having std::nullopt value in case of null/nil
  • CXON: Fix cnt::emplace with std::allocator_arg argument
  • CXON: More examples

Release 0.60.0

05 Feb 11:56
Compare
Choose a tag to compare
  • JSON: Optionally allow bare root objects
        "key1": value1,
        "key2": value2
    
  • JSON: Optionally allow trailing separators for objects and arrays
        [
            value1,
            value2,
        ]
    
  • JSON: Optionally allow c-style comments
        {   // line comment
            "key1": 1/*,
            "key2": 2*/
        }
  • JSON: Optionally allow single-quoted strings
        {
            'key1': 1,
            'key2': '2'
        }
    
  • JSON: Optionally allow JavaScript's Infinity and NaN numbers
        [-Infinity, Infinity, -NaN, NaN]
  • JSON: Optionally allow equal sign as a key/value separator
        {
            "key1" = 1,
            "key2" = 2
        }
    
  • JSON: Optionally allow white-spaces as a object/array separators
        [
            value1
            value2
        ]
    
  • CXCF: New JSON-based configuration format
        /* CXCF requires no braces for the root
         * and allows c-style comments
         */
        prop1 = 42                          // the values are of arbitrary JSON type
        prop-array = ["one" "two" "three"]  // the keys are unquoted and separated with equal signs from the values
                                            // the object/array values are separated with white-spaces
        prop-object = {
            key.1 = {}
            key.2 = true
        }
    
  • CXON: Support for std::vector<bool>
  • Tests:
    • UBSAN and ASAN tests
    • 32-bit tests
    • Additional benchmarks with synthetic data

Release 0.59.0

16 Dec 17:59
Compare
Choose a tag to compare
  • JSON: Support for unquoted string keys (e.g. {key: "value"})
  • JSON: Fix bad partial matching of object keys and enum values
  • Fix wrong test execution status for some tests
  • C++23 related changes

Release 0.58.0

29 Apr 18:05
Compare
Choose a tag to compare
  • JSON: Allow optional unquoted object keys ({1: 2, 3: 4} vs. {"1": 2, "3": 4})
  • A lot of small fixes and other changes
  • Improved branch coverage (~90%)

Release 0.57.2

15 Mar 21:43
Compare
Choose a tag to compare
  • fix allocator broken propagation

Release 0.57.1

05 Mar 16:24
Compare
Choose a tag to compare
  • fix 32 bit compiler warnings
  • fix broken boost tests and benchmarks

Release 0.57.0

01 Feb 21:21
Compare
Choose a tag to compare
  • support Boost.Container
  • support boost::dynamic_bitset
  • support Boost.Variant
  • support Boost.Variant2