summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDariqq <dariqq@posteo.net>2024-07-06 07:29:16 +0000
committerGuix Patches Tester <>2024-07-06 10:29:03 +0200
commit485e7233e52f4d23b7ac3b2223d8d49f43b61cd3 (patch)
treed5ea6992d9fb30bcb871d750a4db121af78e4532
parent5905b4728776d6a6e6e5587f46fc0d633df6907c (diff)
downloadguix-patches-485e7233e52f4d23b7ac3b2223d8d49f43b61cd3.tar
guix-patches-485e7233e52f4d23b7ac3b2223d8d49f43b61cd3.tar.gz
gnu: Add yyjson.
* gnu/packages/c.scm (yyjson): New variable. Change-Id: Ica9ff2e1b6676aa8761eb33cbab76154f17e443f
-rw-r--r--gnu/packages/c.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index d13b62b5e2..b251e0334e 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -1678,3 +1678,41 @@ program instances execute in parallel on the hardware.")
Linear Congruential Generator (LCG) with a permutation function to increase
output randomness while retaining speed, simplicity, and conciseness.")
(license (list license:expat license:asl2.0))))) ; dual licensed
+
+(define-public yyjson
+ (package
+ (name "yyjson")
+ (version "0.9.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ibireme/yyjson")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "169rqh7mh01g5j4qkqjgfmgnyqjf9r8qxiywf4jkgcb7ln4j64w9"))))
+ (arguments
+ (list
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
+ "-DYYJSON_BUILD_TESTS=ON")))
+ (build-system cmake-build-system)
+ (home-page "https://github.com/ibireme/yyjson")
+ (synopsis "High performance JSON library written in ANSI C")
+ (description
+ "Yyjson is a high performance JSON library written in ANSI C. Some features include
+@itemize
+@item Fast: can read or write gigabytes per second JSON data on modern CPUs.
+@item Portable: complies with ANSI C (C89) for cross-platform compatibility.
+@item Strict: complies with RFC 8259 JSON standard, ensuring strict
+number format and UTF-8 validation.
+@item Extendable: offers options to allow comments, trailing commas, NaN/Inf,
+ and custom memory allocator.
+@item Accuracy: can accurately read and write int64, uint64, and double numbers.
+@item Flexible: supports unlimited JSON nesting levels, \u0000 characters,
+and non null-terminated strings.
+@item Manipulation: supports querying and modifying using JSON Pointer,
+JSON Patch and JSON Merge Patch.
+@item Developer-Friendly: easy integration with only one .h and one .c file.
+@end itemize")
+ (license license:expat)))