jadn


Namejadn JSON
Version 0.7.5 PyPI version JSON
download
home_pagehttps://github.com/davaya/jadn-pypkg
SummaryJADN schema tools
upload_time2025-02-13 01:30:19
maintainerNone
docs_urlNone
authorDavid Kemp
requires_pythonNone
licenseApache License 2.0
keywords schema
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            **********************************
JSON Abstract Data Notation (JADN)
**********************************

`JADN <https://docs.oasis-open.org/openc2/jadn/v1.0/cs01/jadn-v1.0-cs01.html>`_
is an `information modeling <https://tools.ietf.org/html/rfc8477#section-2>`_
language used to define the information
needed by applications and to serialize that information using one or more data formats.
It has several purposes, including convenient and expressive definition of data structures,
validation of data instances, providing hints for user interfaces working with structured data,
and facilitating protocol internationalization. A JADN specification consists of two parts:
an Information Model (abstract schema) that is independent of data format,
and serialization rules that define how to represent information using a specific data format.
A single JADN schema defines protocol data in multiple formats including XML, JSON, and
an actually-concise CBOR format. Additional data formats can be defined and applied to any
JADN schema.

The software in this package is organized by function:

* **core:** Load, validate, and save a JADN schema.
* **codec:** Validate, encode, and decode application information using a specified data format:

  * Idiomatic (verbose) JSON
  * Minimized (concise) JSON
  * CBOR*
  * XML*

* **convert:** Convert JADN schema between JSON and documentation formats:

  * text-based Interface Definition Language (IDL)
  * html tables
  * markdown tables
  * GraphViz and PlantUML diagrams

* **transform:** Process a JADN schema to produce another JADN schema:

  * combine definitions from separate schemas into a single schema
  * split a schema that defines multiple objects into separate schemas for each object
  * remove unused definitions
  * delete or truncate comments

* **translate:** Convert a JADN schema into a concrete schema language:

  * JSON Schema
  * XSD*
  * CDDL*
  * Protobuf*

\* Planned

Quickstart
##########

The `quickstart.py
<https://github.com/davaya/jadn-pypkg/blob/main/distribution/quickstart.py>`_
script illustrates how to use these functions:

* define and validate a schema
* convert the schema to and from documentation formats
* truncate comments
* translate a JADN schema to JSON Schema
* validate messages and serialize using multiple data formats:

  * JSON
  * Minimized JSON

Make Artifacts
##############

The `make_artifacts.py
<https://github.com/davaya/jadn-pypkg/blob/main/distribution/make_artifacts.py>`_
script translates all JADN schemas in a source directory to multiple formats in an output directory.

Input formats are:

* JADN
* JADN IDL
* HTML (with tags produced by this package)

Output formats are:

* JADN
* Core JADN (with extensions removed)
* JADN IDL
* HTML tables
* Markdown tables
* GraphViz diagram
* PlantUML diagram
* JSON Schema

Contributors
############

Jerome Czachor - Massive code cleanup, type hinting, conversion classes, refactor using datatypes

Feedback
########

Comments on this software can be submitted using `GitHub
<https://github.com/davaya/jadn-pypkg>`_ issues and pull requests.

The `JADN <https://docs.oasis-open.org/openc2/jadn/v1.0/cs01/jadn-v1.0-cs01.html>`_
specification is being developed by the OASIS OpenC2 Technical Committee.
OASIS members may participate directly in its development;
others may participate indirectly using GitHub issues or the
`openc2-comment <https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=openc2>`_ public mail list.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/davaya/jadn-pypkg",
    "name": "jadn",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "schema",
    "author": "David Kemp",
    "author_email": "dk190a@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/b2/e1/1748710912185848d65775e1a403ac86aa234f6432740b1d47bcc4e267e5/jadn-0.7.5.tar.gz",
    "platform": null,
    "description": "**********************************\r\nJSON Abstract Data Notation (JADN)\r\n**********************************\r\n\r\n`JADN <https://docs.oasis-open.org/openc2/jadn/v1.0/cs01/jadn-v1.0-cs01.html>`_\r\nis an `information modeling <https://tools.ietf.org/html/rfc8477#section-2>`_\r\nlanguage used to define the information\r\nneeded by applications and to serialize that information using one or more data formats.\r\nIt has several purposes, including convenient and expressive definition of data structures,\r\nvalidation of data instances, providing hints for user interfaces working with structured data,\r\nand facilitating protocol internationalization. A JADN specification consists of two parts:\r\nan Information Model (abstract schema) that is independent of data format,\r\nand serialization rules that define how to represent information using a specific data format.\r\nA single JADN schema defines protocol data in multiple formats including XML, JSON, and\r\nan actually-concise CBOR format. Additional data formats can be defined and applied to any\r\nJADN schema.\r\n\r\nThe software in this package is organized by function:\r\n\r\n* **core:** Load, validate, and save a JADN schema.\r\n* **codec:** Validate, encode, and decode application information using a specified data format:\r\n\r\n  * Idiomatic (verbose) JSON\r\n  * Minimized (concise) JSON\r\n  * CBOR*\r\n  * XML*\r\n\r\n* **convert:** Convert JADN schema between JSON and documentation formats:\r\n\r\n  * text-based Interface Definition Language (IDL)\r\n  * html tables\r\n  * markdown tables\r\n  * GraphViz and PlantUML diagrams\r\n\r\n* **transform:** Process a JADN schema to produce another JADN schema:\r\n\r\n  * combine definitions from separate schemas into a single schema\r\n  * split a schema that defines multiple objects into separate schemas for each object\r\n  * remove unused definitions\r\n  * delete or truncate comments\r\n\r\n* **translate:** Convert a JADN schema into a concrete schema language:\r\n\r\n  * JSON Schema\r\n  * XSD*\r\n  * CDDL*\r\n  * Protobuf*\r\n\r\n\\* Planned\r\n\r\nQuickstart\r\n##########\r\n\r\nThe `quickstart.py\r\n<https://github.com/davaya/jadn-pypkg/blob/main/distribution/quickstart.py>`_\r\nscript illustrates how to use these functions:\r\n\r\n* define and validate a schema\r\n* convert the schema to and from documentation formats\r\n* truncate comments\r\n* translate a JADN schema to JSON Schema\r\n* validate messages and serialize using multiple data formats:\r\n\r\n  * JSON\r\n  * Minimized JSON\r\n\r\nMake Artifacts\r\n##############\r\n\r\nThe `make_artifacts.py\r\n<https://github.com/davaya/jadn-pypkg/blob/main/distribution/make_artifacts.py>`_\r\nscript translates all JADN schemas in a source directory to multiple formats in an output directory.\r\n\r\nInput formats are:\r\n\r\n* JADN\r\n* JADN IDL\r\n* HTML (with tags produced by this package)\r\n\r\nOutput formats are:\r\n\r\n* JADN\r\n* Core JADN (with extensions removed)\r\n* JADN IDL\r\n* HTML tables\r\n* Markdown tables\r\n* GraphViz diagram\r\n* PlantUML diagram\r\n* JSON Schema\r\n\r\nContributors\r\n############\r\n\r\nJerome Czachor - Massive code cleanup, type hinting, conversion classes, refactor using datatypes\r\n\r\nFeedback\r\n########\r\n\r\nComments on this software can be submitted using `GitHub\r\n<https://github.com/davaya/jadn-pypkg>`_ issues and pull requests.\r\n\r\nThe `JADN <https://docs.oasis-open.org/openc2/jadn/v1.0/cs01/jadn-v1.0-cs01.html>`_\r\nspecification is being developed by the OASIS OpenC2 Technical Committee.\r\nOASIS members may participate directly in its development;\r\nothers may participate indirectly using GitHub issues or the\r\n`openc2-comment <https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=openc2>`_ public mail list.\r\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "JADN schema tools",
    "version": "0.7.5",
    "project_urls": {
        "Homepage": "https://github.com/davaya/jadn-pypkg"
    },
    "split_keywords": [
        "schema"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "453be21f95b9cc4cc85c0b704e65360920da16c55b4ab473162646ad5ca6bbbc",
                "md5": "6fd02e8a367f59a25dab5fdf2c8d2ba4",
                "sha256": "04df399b3e66c9c8a7bb2bb8212124c8f4d92372146a1778baaf3a4d0522f489"
            },
            "downloads": -1,
            "filename": "jadn-0.7.5-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6fd02e8a367f59a25dab5fdf2c8d2ba4",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 62367,
            "upload_time": "2025-02-13T01:30:18",
            "upload_time_iso_8601": "2025-02-13T01:30:18.373204Z",
            "url": "https://files.pythonhosted.org/packages/45/3b/e21f95b9cc4cc85c0b704e65360920da16c55b4ab473162646ad5ca6bbbc/jadn-0.7.5-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2e11748710912185848d65775e1a403ac86aa234f6432740b1d47bcc4e267e5",
                "md5": "7f9bddb49b754baa2e6dc401e104e666",
                "sha256": "5a5e0c4cf2fddea9e213e9bea86593180113c0bba0ae277a07ace2e31b9b2ad0"
            },
            "downloads": -1,
            "filename": "jadn-0.7.5.tar.gz",
            "has_sig": false,
            "md5_digest": "7f9bddb49b754baa2e6dc401e104e666",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 70403,
            "upload_time": "2025-02-13T01:30:19",
            "upload_time_iso_8601": "2025-02-13T01:30:19.600474Z",
            "url": "https://files.pythonhosted.org/packages/b2/e1/1748710912185848d65775e1a403ac86aa234f6432740b1d47bcc4e267e5/jadn-0.7.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-13 01:30:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "davaya",
    "github_project": "jadn-pypkg",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "jadn"
}
        
Elapsed time: 0.57065s