mirror of
https://github.com/simdjson/simdjson
synced 2026-06-08 17:27:07 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e829566589 | |||
| dbe0c1543e | |||
| 06c774c655 | |||
| 95d8c81810 |
+3
-3
@@ -12,7 +12,7 @@ endif()
|
||||
project(
|
||||
simdjson
|
||||
# The version number is modified by tools/release.py
|
||||
VERSION 4.2.4
|
||||
VERSION 4.3.1
|
||||
DESCRIPTION "Parsing gigabytes of JSON per second"
|
||||
HOMEPAGE_URL "https://simdjson.org/"
|
||||
LANGUAGES CXX C
|
||||
@@ -29,8 +29,8 @@ string(
|
||||
# ---- Options, variables ----
|
||||
|
||||
# These version numbers are modified by tools/release.py
|
||||
set(SIMDJSON_LIB_VERSION "29.0.0" CACHE STRING "simdjson library version")
|
||||
set(SIMDJSON_LIB_SOVERSION "29" CACHE STRING "simdjson library soversion")
|
||||
set(SIMDJSON_LIB_VERSION "30.0.0" CACHE STRING "simdjson library version")
|
||||
set(SIMDJSON_LIB_SOVERSION "30" CACHE STRING "simdjson library soversion")
|
||||
|
||||
option(SIMDJSON_BUILD_STATIC_LIB "Build simdjson_static library along with simdjson (only makes sense if BUILD_SHARED_LIBS=ON)" OFF)
|
||||
if(SIMDJSON_BUILD_STATIC_LIB AND NOT BUILD_SHARED_LIBS)
|
||||
|
||||
@@ -38,7 +38,7 @@ PROJECT_NAME = simdjson
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = "4.2.4"
|
||||
PROJECT_NUMBER = "4.3.1"
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
|
||||
@@ -146,7 +146,7 @@ simdjson_inline bool fast_needs_escaping(std::string_view view) {
|
||||
#endif
|
||||
|
||||
// Scalar fallback for finding next quotable character
|
||||
SIMDJSON_CONSTEXPR_LAMBDA inline size_t
|
||||
SIMDJSON_CONSTEXPR_LAMBDA simdjson_inline size_t
|
||||
find_next_json_quotable_character_scalar(const std::string_view view,
|
||||
size_t location) noexcept {
|
||||
for (auto pos = view.begin() + location; pos != view.end(); ++pos) {
|
||||
@@ -258,7 +258,7 @@ find_next_json_quotable_character(const std::string_view view,
|
||||
return find_next_json_quotable_character_scalar(view, current);
|
||||
}
|
||||
#else
|
||||
SIMDJSON_CONSTEXPR_LAMBDA inline size_t
|
||||
SIMDJSON_CONSTEXPR_LAMBDA simdjson_inline size_t
|
||||
find_next_json_quotable_character(const std::string_view view,
|
||||
size_t location) noexcept {
|
||||
return find_next_json_quotable_character_scalar(view, location);
|
||||
@@ -277,7 +277,7 @@ SIMDJSON_CONSTEXPR_LAMBDA static std::string_view control_chars[] = {
|
||||
// control characters (U+0000 through U+001F). There are two-character sequence
|
||||
// escape representations of some popular characters:
|
||||
// \", \\, \b, \f, \n, \r, \t.
|
||||
SIMDJSON_CONSTEXPR_LAMBDA void escape_json_char(char c, char *&out) {
|
||||
SIMDJSON_CONSTEXPR_LAMBDA simdjson_inline void escape_json_char(char c, char *&out) {
|
||||
if (c == '"') {
|
||||
memcpy(out, "\\\"", 2);
|
||||
out += 2;
|
||||
@@ -336,7 +336,7 @@ simdjson_inline bool string_builder::capacity_check(size_t upcoming_bytes) {
|
||||
return true;
|
||||
}
|
||||
// check for overflow, most of the time there is no overflow
|
||||
if (simdjson_likely(position + upcoming_bytes < position)) {
|
||||
if (simdjson_unlikely(position + upcoming_bytes < position)) {
|
||||
return false;
|
||||
}
|
||||
// We will rarely get here.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#define SIMDJSON_SIMDJSON_VERSION_H
|
||||
|
||||
/** The version of simdjson being used (major.minor.revision) */
|
||||
#define SIMDJSON_VERSION "4.2.4"
|
||||
#define SIMDJSON_VERSION "4.3.1"
|
||||
|
||||
namespace simdjson {
|
||||
enum {
|
||||
@@ -15,11 +15,11 @@ enum {
|
||||
/**
|
||||
* The minor version (major.MINOR.revision) of simdjson being used.
|
||||
*/
|
||||
SIMDJSON_VERSION_MINOR = 2,
|
||||
SIMDJSON_VERSION_MINOR = 3,
|
||||
/**
|
||||
* The revision (major.minor.REVISION) of simdjson being used.
|
||||
*/
|
||||
SIMDJSON_VERSION_REVISION = 4
|
||||
SIMDJSON_VERSION_REVISION = 1
|
||||
};
|
||||
} // namespace simdjson
|
||||
|
||||
|
||||
+6725
-85
File diff suppressed because it is too large
Load Diff
+22766
-104
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -25,3 +25,8 @@ if (SIMDJSON_EXCEPTIONS)
|
||||
add_dual_compile_test(dangling_parser_parse_padstring)
|
||||
add_dual_compile_test(unsafe_parse_many)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
# We only check that it builds
|
||||
add_subdirectory(multiple_include)
|
||||
endif()
|
||||
@@ -0,0 +1,5 @@
|
||||
add_library(mylib mylib.cpp)
|
||||
target_link_libraries(mylib PUBLIC simdjson::simdjson)
|
||||
target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
add_executable(myexe main.cpp)
|
||||
target_link_libraries(myexe PRIVATE mylib)
|
||||
@@ -0,0 +1,22 @@
|
||||
#include "mylib.h"
|
||||
#include <simdjson.h>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
||||
int main() {
|
||||
simdjson::padded_string json = R"([ 1, 2, 3, 4 ])"_padded;
|
||||
simdjson::padded_string minified = minify_json(json);
|
||||
std::cout << "Minified: " << std::string_view(minified) << std::endl;
|
||||
|
||||
// Also directly use minify
|
||||
size_t length = json.size();
|
||||
std::unique_ptr<char[]> buffer{new char[length]};
|
||||
size_t new_length{};
|
||||
auto error = simdjson::minify(json.data(), length, buffer.get(), new_length);
|
||||
if (error) {
|
||||
std::cerr << "Error: " << simdjson::error_message(error) << std::endl;
|
||||
} else {
|
||||
std::cout << "Direct minified: " << std::string(buffer.get(), new_length) << std::endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
#include "mylib.h"
|
||||
#include <simdjson.h>
|
||||
#include <memory>
|
||||
|
||||
simdjson::padded_string minify_json(const simdjson::padded_string& json) {
|
||||
size_t length = json.size();
|
||||
std::unique_ptr<char[]> buffer{new char[length]};
|
||||
size_t new_length{};
|
||||
auto error = simdjson::minify(json.data(), length, buffer.get(), new_length);
|
||||
if (error) {
|
||||
return simdjson::padded_string();
|
||||
}
|
||||
return simdjson::padded_string(std::string_view(buffer.get(), new_length));
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
#ifndef MYLIB_H
|
||||
#define MYLIB_H
|
||||
|
||||
#include <simdjson.h>
|
||||
#include <string>
|
||||
|
||||
simdjson::padded_string minify_json(const simdjson::padded_string& json);
|
||||
|
||||
#endif // MYLIB_H
|
||||
Reference in New Issue
Block a user