Package: janssonr
Type: Package
Title: Strict JSON Encoding and Decoding via the 'Jansson' C Library
Version: 0.1.2
Date: 2026-09-01
Authors@R: c(
    person("Troy", "Hernandez", role = c("aut", "cre"), email = "troy@cornball.ai",
           comment = c(ORCID = "0009-0005-4248-604X")),
    person("cornball.ai", role = "cph"),
    person("Petri", "Lehtinen", role = c("ctb", "cph"),
           comment = "Author of the Jansson C library, bundled under src/jansson"),
    person("Basile", "Starynkevitch", role = c("ctb", "cph"),
           comment = "Jansson: src/jansson/memory.c"),
    person("Graeme", "Smecher", role = c("ctb", "cph"),
           comment = "Jansson: src/jansson/pack_unpack.c"),
    person("Sean", "Bright", role = c("ctb", "cph"),
           comment = "Jansson: src/jansson/version.c"),
    person("David M.", "Gay", role = "ctb",
           comment = "Author of dtoa.c, bundled by Jansson as src/jansson/dtoa.c"),
    person("Lucent Technologies", role = "cph",
           comment = "src/jansson/dtoa.c"),
    person("Bob", "Jenkins", role = "ctb",
           comment = "Author of lookup3.c (public domain), bundled by Jansson as src/jansson/lookup3.h"))
Copyright: cornball.ai, except the bundled Jansson sources under
        src/jansson, whose per-file copyright holders and license
        statements are listed in inst/COPYRIGHTS.
Description: An R-safe profile of RFC 8259 JSON: parsing and generation
    backed by the 'Jansson' C library, linked as a system library where one
    is available and compiled from the bundled sources otherwise. The
    parser rejects, with classed conditions carrying line, column, and byte
    position: malformed or truncated input, trailing content, duplicate
    object keys at any depth, invalid UTF-8, escapes encoding a null
    character, reals overflowing double,
    and integer literals whose magnitude exceeds 2^53, the range within
    which a double represents every integer exactly.
    Number literals with a fraction or exponent convert by ordinary
    correctly rounded IEEE 754 double conversion. Objects decode to named
    lists in key order, arrays to unnamed lists, and scalars to length-one
    vectors. The encoder maps named lists to objects in insertion order,
    unnamed lists to arrays, guarantees that every finite double, signed
    zero included, round-trips to the exact same value (whole-number
    doubles are written as integers), and refuses values with no faithful
    JSON representation (NA, NaN, infinities, named atomic vectors,
    classed objects) instead of guessing. No R package dependencies.
License: MIT + file LICENSE
Depends: R (>= 4.4.0)
URL: https://github.com/cornball-ai/janssonr
BugReports: https://github.com/cornball-ai/janssonr/issues
SystemRequirements: jansson (>= 2.11) is linked when present:
        libjansson-dev (deb), jansson-devel (rpm), jansson (brew). When
        it is absent, and always on Windows, the bundled Jansson 2.15.1
        is compiled into the package.
Suggests: tinytest
Encoding: UTF-8
NeedsCompilation: yes
Packaged: 2026-09-01 14:36:13 UTC; troy
Author: Troy Hernandez [aut, cre] (ORCID:
    <https://orcid.org/0009-0005-4248-604X>),
  cornball.ai [cph],
  Petri Lehtinen [ctb, cph] (Author of the Jansson C library, bundled
    under src/jansson),
  Basile Starynkevitch [ctb, cph] (Jansson: src/jansson/memory.c),
  Graeme Smecher [ctb, cph] (Jansson: src/jansson/pack_unpack.c),
  Sean Bright [ctb, cph] (Jansson: src/jansson/version.c),
  David M. Gay [ctb] (Author of dtoa.c, bundled by Jansson as
    src/jansson/dtoa.c),
  Lucent Technologies [cph] (src/jansson/dtoa.c),
  Bob Jenkins [ctb] (Author of lookup3.c (public domain), bundled by
    Jansson as src/jansson/lookup3.h)
Maintainer: Troy Hernandez <troy@cornball.ai>
Repository: CRAN
Date/Publication: 2026-09-12 09:00:02 UTC
Built: R 4.6.1; x86_64-apple-darwin20; 2026-09-12 11:44:11 UTC; unix
Archs: janssonr.so.dSYM
