{"id":16760170,"url":"https://github.com/maulingmonkey/libmmkjsonwriter","last_synced_at":"2026-04-11T08:02:06.607Z","repository":{"id":66817384,"uuid":"86331849","full_name":"MaulingMonkey/libMmkJsonWriter","owner":"MaulingMonkey","description":"MaulingMonKey's Json Writer API.  No, the world didn't really need another JSON writer library.  Yes, I wrote one anyways.","archived":false,"fork":false,"pushed_at":"2017-05-29T17:30:04.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-04T14:55:42.047Z","etag":null,"topics":["cross-platform","json","library","native","nuget"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaulingMonkey.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-03-27T12:19:57.000Z","updated_at":"2017-03-28T22:05:59.000Z","dependencies_parsed_at":"2023-05-12T05:30:16.904Z","dependency_job_id":null,"html_url":"https://github.com/MaulingMonkey/libMmkJsonWriter","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/MaulingMonkey/libMmkJsonWriter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2FlibMmkJsonWriter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2FlibMmkJsonWriter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2FlibMmkJsonWriter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2FlibMmkJsonWriter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaulingMonkey","download_url":"https://codeload.github.com/MaulingMonkey/libMmkJsonWriter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2FlibMmkJsonWriter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31673067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"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":["cross-platform","json","library","native","nuget"],"created_at":"2024-10-13T04:22:36.031Z","updated_at":"2026-04-11T08:02:06.570Z","avatar_url":"https://github.com/MaulingMonkey.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libMmkJsonWriter\n\nMaulingMonKey's Json Writer API.  No, the world didn't really need another JSON writer library.  Yes, I wrote one anyways.\n\nProject Goals:\n- Zero Allocations - I should be able to use this to report heap corruptions.  Payload limits are a feature (tm).\n- Cross Platform - any C++03 compiler should work (tm).\n- Compile-time safety to prevent API misuse (writing object key/value pairs to an array, or writing to a non-current scope.)\n- No Config - aiming to have \"perfect\" NuGet integration, with .libs, sane defaults, and source compilation fallback.\n\nLicense: [Apache 2.0](LICENSE.txt)\n\n# Example ([tests/main.cpp](tests/main.cpp))\n\n```cpp\n#include \u003cmmk/json/writer.hpp\u003e\n#include \u003ciostream\u003e\n\nint main()\n{\n\tMMK_JSON_WRITER_ROOT_OBJECT( example, 1024 )\n\t{\n\t\tconst char* const null = 0; // C++03 hack for demo\n\n\t\t// example is now an objectWriter\n\t\texample(\"i\", 42);\n\t\texample(\"n\", 42.0);\n\t\texample(\"s\", \"\\x01\\x1f\\x20\\x7e\\x7f\\x80string\");\n\t\texample(\"p\", null);\n\n\t\tMMK_JSON_WRITER_OBJECT_ARRAY(example, \"a\")\n\t\t{\n\t\t\t// example is now an arrayWriter\n\t\t\texample(42);\n\t\t\texample(42.0);\n\t\t\texample(\"string\");\n\t\t\texample(null);\n\t\t}\n\n\t\tMMK_JSON_WRITER_OBJECT_OBJECT(example, \"o\")\n\t\t{\n\t\t\t// example is now an objectWriter\n\t\t\texample(\"i\", 42);\n\t\t\texample(\"n\", 42.0);\n\t\t\texample(\"s\", \"string\");\n\t\t\texample(\"p\", null);\n\t\t}\n\t}\n\n\t// example is now a writer\n\tif (example) std::cout \u003c\u003c example.c_str() \u003c\u003c \"\\n\";\n}\n```\n\nOutput:\n```json\n{\"i\":42,\"n\":42.000000,\"s\":\"\\u0001\\u001f ~\\u007f\\u0080string\",\"p\":null,\"a\":[42,42.000000,\"string\",null],\"o\":{\"i\":42,\"n\":42.000000,\"s\":\"string\",\"p\":null}}\n```\n\n# Installation\n\n## Via NuGet\nAdd [libMmkJsonWriter](https://www.nuget.org/packages/libMmkJsonWriter/) to your project via nuget.  Done!\n\n## From Source (Windows)\n- Clone the repository\n- Open libMmkJsonWriter.sln, uild whatever combinations you like\n- Add [libMmkJsonWriter/include/](libMmkJsonWriter/include/) to your #include paths.\n- Add [libMmkJsonWriter/build/native/libs/](libMmkJsonWriter/build/native/libs/) to your library paths.\n- Link libMmkJsonWriter.lib\n\n## From Source (Linux)\n- Clone the repository\n- Invoke make\n- Add [`-IlibMmkJsonWriter/include/`](libMmkJsonWriter/include/) to your `CCFLAGS`.\n- Add [`-LlibMmkJsonWriter/build/native/libs/`](libMmkJsonWriter/build/native/libs/) to your `LDFLAGS`.\n- Add `-lMmkJsonWriter` to your `LDFLAGS`.\n\n# Compatability\n\nSupported compilers:\n- MSVC 2005+\n- GCC 3.0+\n- Clang\n\nRequirements:\n- A C++03 compatable compiler\n\n# TODO\n\n- Public CI\n- Support ICC\n- 'nix friendly packaging?\n\n# Why?\n\n- I plan to write an SDK for sentry.io using this.\n- Also I want to experiment with better native nuget packaging.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaulingmonkey%2Flibmmkjsonwriter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaulingmonkey%2Flibmmkjsonwriter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaulingmonkey%2Flibmmkjsonwriter/lists"}