{"id":17048515,"url":"https://github.com/hollasch/lson","last_synced_at":"2025-04-12T15:31:29.295Z","repository":{"id":68064671,"uuid":"87347009","full_name":"hollasch/LSON","owner":"hollasch","description":"Lucid Serialized Object Notation","archived":false,"fork":false,"pushed_at":"2024-08-27T21:25:26.000Z","size":270,"stargazers_count":8,"open_issues_count":10,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T10:11:24.664Z","etag":null,"topics":["json","json-variant","specification"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hollasch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-05T19:11:13.000Z","updated_at":"2024-08-27T21:25:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"a75d2015-d292-4266-b80e-cdc66ea2324d","html_url":"https://github.com/hollasch/LSON","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollasch%2FLSON","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollasch%2FLSON/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollasch%2FLSON/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hollasch%2FLSON/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hollasch","download_url":"https://codeload.github.com/hollasch/LSON/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248589526,"owners_count":21129634,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json","json-variant","specification"],"created_at":"2024-10-14T09:52:12.145Z","updated_at":"2025-04-12T15:31:28.850Z","avatar_url":"https://github.com/hollasch.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"LSON: Lucid Serialized Object Notation\n====================================================================================================\n_If I had a dime for every developer who thought of creating a better JSON…_\n\n- [LSON Specification][spec]\n- [LSON Specification (repo local)][spec-repo]\n\nAbout\n------\nThe JSON file format is beautiful in its simplicity and power. With a surprisingly succinct syntax,\nit is able to express data in a huge variety of formats. Yet there are little annoyances of the\nformat: the lack of comments, mandated string quoting, mandated key quoting, double quotes only,\nstrict syntax for commas, limitations in numeric values, and so forth.\n\nLSON was a personal doodle in my spare time to see how I'd like to see the format evolve. In the\nbeginning, I made all the standard tweaks. However, in working and re-working it, I encountered\nideas that I found to be quite powerful, and ideas building from those. In the end, I arrived at a\nformat that I believe keeps the ultimate simplicity of the file format, with greater power and\nexpressiveness.\n\nHere's a list of some of LSON's more interesting features:\n\n  1. It's intended to be both concise and readable by humans as well as computers. It supports\n     comments. Items are optionally terminated by whitespace, end delimiters, commas or semi-colons.\n\n  2. It does not aim to mirror JavaScript, and thus is not a JavaScript subset. At the same time,\n     LSON is a superset of JSON: any legal JSON file is legal LSON.\n\n  3. LSON focuses on data _representation_, not data _usage_. With the single exception of string\n     values, there is no intrinsic support for numbers, boolean, or any other primitive type.\n\n  4. LSON supports arbitrary _elements_: domain-specific data values with declared or unknown type.\n     Elements provide first-class support for domain-specific values such as `true`, `null`,\n     `infinity`, `2018-07-02`, `#6b17ec`, `(x,a,b) =\u003e { a \u003c= x \u0026\u0026 x \u003c= b }`, and so forth. LSON\n     encoders and decoders handle both known and unknown types in a consistent and predictable\n     manner.\n\n  5. LSON adds two new data structures to JSON's array and dictionary: table and graph.\n\nYou can [browse the examples][examples] for a quick scan of what LSON looks like.\n\n\nLSON Tools\n-----------\nI am just starting on an LSON parser and command-line utility in C++. Ultimately this will fork into\nan LSON C++ library, and one or several standalone LSON command-line utilities. You can find this in\n[the `src` directory](src/).\n\nIn addition, [Connor Hollasch][] has written  a [Java library][] for an early version of LSON.\n\n\nBuilding\n----------\nThis project uses the CMake build tool. CMake is a meta-build system that locates and uses your\nlocal development tools to build the project if possible.\n\nTo build, first install [CMake][]. Then go to the project root directory and run the following\ncommand:\n\n    cmake -B build\n\nThis will locate your installed development tools and configure your project build in the `build/`\ndirectory. After that, whenever you want a new build, run this command:\n\n    cmake --build build\n\nThis will build a debug version of the project, located in `build/Debug/`. To build a release\nversion, run\n\n    cmake --build build --config release\n\nYou can find the built release executable in `build/Release/`.\n\n\n\n[CMake]:           https://cmake.org/\n[Connor Hollasch]: https://github.com/chollasch/\n[examples]:        https://hollasch.github.io/LSON/examples.md.html\n[Java library]:    https://github.com/chollasch/LSON4J\n[spec-repo]:       docs/index.html\n[spec]:            https://hollasch.github.io/LSON/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhollasch%2Flson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhollasch%2Flson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhollasch%2Flson/lists"}