{"id":21254602,"url":"https://github.com/gottox/nson","last_synced_at":"2025-10-14T04:40:02.419Z","repository":{"id":141861969,"uuid":"127862418","full_name":"Gottox/nson","owner":"Gottox","description":"nson is a data framework for C with a very fast JSON and property list parser.","archived":false,"fork":false,"pushed_at":"2021-12-13T15:10:00.000Z","size":1296,"stargazers_count":15,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-14T04:40:01.941Z","etag":null,"topics":["hacktoberfest","json","parsers"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Gottox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2018-04-03T06:36:14.000Z","updated_at":"2025-09-25T06:01:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"f045de37-80ee-4420-9296-0ef072ca130e","html_url":"https://github.com/Gottox/nson","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Gottox/nson","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gottox%2Fnson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gottox%2Fnson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gottox%2Fnson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gottox%2Fnson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gottox","download_url":"https://codeload.github.com/Gottox/nson/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gottox%2Fnson/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017930,"owners_count":26086213,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["hacktoberfest","json","parsers"],"created_at":"2024-11-21T03:57:22.004Z","updated_at":"2025-10-14T04:40:02.414Z","avatar_url":"https://github.com/Gottox.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"*nson*\n======\n\n*nson* is a data framework for C with a very fast JSON and property list parser.\n\nTo run the tests suite:\n\n\tmake check\n\nTo run the benchmarks with other parsers:\n\n\tmake speed\n\nfor the benchmark the following libraries and headerfiles are needed:\n\n * proplib\n * libucl\n * json-c\n * jansson\n\nTo aquire the bench file `wget` is used. For converting it into plist, node and npm\nneed to be installed.\n\nTo setup the environment in VoidLinux run the following command:\n\n\txbps-install base-devel proplib-devel libucl-devel json-c-devel jansson-devel\n\nGoals\n-----\n\n * **Bootstrapable** - NSON should be useable without fancy dependencies\n   or build systems. That makes it possible to use it during bootstrapping where\n   only very few base dependencies are available. (gcc, libc, make)\n * **Fast** - NSON should be fast to setup. It is designed to be used for command\n   line tools that won't run for long. So NSON avoids building hashmaps and uses\n   linear/binary search which is expected to be faster in programs of short\n   lifetime.\n * **mutex-/lock-less** NSON provides basic thread functionality, which will\n   be used for mapping or filtering collections of data. If you need more complex\n   threading setups, you must lock the data by your own.\n   \n\nMemory Model\n------------\n\nNSON does not rely on reference counting, garbage collection, or data locking.\nInstead the user is adviced to follow a few simple rules that avoid memory leaks:\n\n * If NSON _returns_ a pointer, NSON cares about the memory. The data is\n   _borrowed to you_. Never clean borrowed data.\n\n * If NSON _expects_ a pointer, it will not care about freeing the memory.\n   The data is _borrowed to nson_ and won't be mutated after the function\n   returns.\n\n   * The big exception is `nson_init_data()`. NSON will try to free the value\n     of the created element once nson_clean() is called on the field.\n     This was added to have a way to save binary data in an NSON field\n     without memcpy'ing it.\n\nIf this concept sounds familiar, yes, it is a similiar concept used in rust. :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgottox%2Fnson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgottox%2Fnson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgottox%2Fnson/lists"}