diff options
author | Artyom Bologov <mail@aartaka.me> | 2022-09-15 10:23:59 +0200 |
---|---|---|
committer | Guillaume Le Vaillant <glv@posteo.net> | 2022-09-15 10:35:57 +0200 |
commit | 170a3962404a9c0499c065d1c3fd9532f56e17b8 (patch) | |
tree | acf58e486ac6687e006289c945537ac68c2724ac | |
parent | 63115fafbda8cd0fdf5e33ef93e7827bd49d2430 (diff) | |
download | guix-170a3962404a9c0499c065d1c3fd9532f56e17b8.tar.gz guix-170a3962404a9c0499c065d1c3fd9532f56e17b8.zip |
gnu: Add cl-njson.
* gnu/packages/lisp-xyz.scm (cl-njson, ecl-njson, sbcl-njson): New variables.
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 600a8191fe..31ed40e03a 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -36,6 +36,7 @@ ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org> ;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2022 Trevor Richards <trev@trevdev.ca> +;;; Copyright © 2022 Artyom Bologov <mail@aartaka.me> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22123,6 +22124,54 @@ instead of #'FOO. (define-public ecl-nkeymaps (sbcl-package->ecl-package sbcl-nkeymaps)) +(define-public sbcl-njson + (package + (name "sbcl-njson") + (version "0.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/atlas-engineer/njson") + (commit version))) + (file-name (git-file-name "cl-njson" version)) + (sha256 + (base32 + "0lv3q1841s4avii1jp89r91jq21sids2ycpy2id0kzhrljzhmy6j")))) + (build-system asdf-build-system/sbcl) + (inputs (list sbcl-cl-json)) + (native-inputs (list sbcl-lisp-unit2)) + (home-page "https://github.com/atlas-engineer/njson") + (synopsis "JSON handling framework for Common Lisp") + (description + "NJSON aims to make it convenient for one to decode, encode, +and process JSON data, in the minimum keystrokes/minutes possible. + +NJSON is parser-independent, with existing Common Lisp JSON parsers being +loadable as additional system. @code{cl-json} is included by default, though. +Conveniences that NJSON provides are: + +@itemize + +@item @code{encode} and @code{decode} as single entry points for JSON reading +and writing, be it from streams/string/files, or from those. + +@item @code{jget}, @code{jrem}, @code{jtruep}, and their aliases to +access/delete the decoded objects' properties and check their truth value +without the need to worry about the low-level details of how these values are +decoded. + +@item @code{jif}, @code{jwhen}, @code{jor}, @code{jand}, and other macros +mimicking Lisp ones, while using truth values of JSON-decoded data. + +@end itemize\n") + (license license:bsd-3))) + +(define-public cl-njson + (sbcl-package->cl-source-package sbcl-njson)) + +(define-public ecl-njson + (sbcl-package->ecl-package sbcl-njson)) + (define-public sbcl-utils-kt (let ((commit "4adfe2889036ab5ffdd3cc2182ca2cc692bf11ff")) (package |