{"id":15063595,"url":"https://github.com/williamthome/exneus","last_synced_at":"2025-10-24T05:22:45.975Z","repository":{"id":252132584,"uuid":"839523087","full_name":"williamthome/exneus","owner":"williamthome","description":"An incredibly flexible and performant JSON parser, generator and formatter for Elixir","archived":false,"fork":false,"pushed_at":"2025-02-09T17:30:32.000Z","size":1280,"stargazers_count":3,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T10:12:03.387Z","etag":null,"topics":["elixir","elixir-library","format-json","json","jsonformatter","jsongenerator","jsonparser","minify","minify-json","mix","otp","otp-library","prettify","pretty-json"],"latest_commit_sha":null,"homepage":"https://hex.pm/packages/exneus","language":"Elixir","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/williamthome.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["williamthome"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://www.buymeacoffee.com/williamthome"]}},"created_at":"2024-08-07T19:32:53.000Z","updated_at":"2025-02-09T17:30:35.000Z","dependencies_parsed_at":"2024-09-25T03:23:05.501Z","dependency_job_id":"1f1d2570-b63a-4fa2-9cdd-73daeb799d14","html_url":"https://github.com/williamthome/exneus","commit_stats":null,"previous_names":["williamthome/exneus"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamthome%2Fexneus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamthome%2Fexneus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamthome%2Fexneus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamthome%2Fexneus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/williamthome","download_url":"https://codeload.github.com/williamthome/exneus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248208617,"owners_count":21065203,"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":["elixir","elixir-library","format-json","json","jsonformatter","jsongenerator","jsonparser","minify","minify-json","mix","otp","otp-library","prettify","pretty-json"],"created_at":"2024-09-25T00:04:42.383Z","updated_at":"2025-10-24T05:22:40.942Z","avatar_url":"https://github.com/williamthome.png","language":"Elixir","funding_links":["https://github.com/sponsors/williamthome","https://www.buymeacoffee.com/williamthome"],"categories":[],"sub_categories":[],"readme":"# Exneus\n\n⚠️ **This lib is no longer maintained in favor of the [JSON module introduced in Elixir 1.18](https://github.com/elixir-lang/elixir/pull/14021).**\n\n[![Github Actions](https://github.com/williamthome/exneus/workflows/CI/badge.svg)](https://github.com/williamthome/exneus/actions)\n[![Coverage](https://raw.githubusercontent.com/cicirello/jacoco-badge-generator/main/tests/100.svg)](https://github.com/williamthome/exneus/actions/workflows/ci.yml)\n[![Elixir Versions](https://img.shields.io/badge/Elixir%2F-12%2B-purple?style=flat-square)](https://elixir-lang.org/)\n[![Erlang Versions](https://img.shields.io/badge/Erlang%2FOTP-24%2B-green?style=flat-square)](http://www.erlang.org)\n[![Latest Release](https://img.shields.io/github/release/williamthome/exneus.svg?style=flat-square)](https://github.com/williamthome/exneus/releases/latest)\n[![Hex Version](https://img.shields.io/hexpm/v/exneus.svg)](https://hex.pm/packages/exneus)\n[![Hex Docs](https://img.shields.io/badge/hex-docs-lightgreen.svg)](https://hexdocs.pm/exneus/)\n[![Total Download](https://img.shields.io/hexpm/dt/exneus.svg)](https://hex.pm/packages/exneus)\n[![License](https://img.shields.io/hexpm/l/exneus.svg)](https://github.com/williamthome/exneus/blob/main/LICENSE)\n[![Last Updated](https://img.shields.io/github/last-commit/williamthome/exneus.svg)](https://github.com/williamthome/exneus/commits/main)\n\nAn incredibly flexible and performant JSON parser, generator and formatter for Elixir.\n\nExneus is a wrapper for Elixir of [Euneus](https://github.com/williamthome/euneus),\nan Erlang library built on the top of the new [OTP json module](https://erlang.org/documentation/doc-15.0-rc3/lib/stdlib-6.0/doc/html/json.html).\n\nBoth encoder and decoder fully conform to [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259)\nand [ECMA 404](https://ecma-international.org/publications-and-standards/standards/ecma-404/) standards\nand are tested using [JSONTestSuite](https://github.com/nst/JSONTestSuite).\n\nFurther explanation and examples are available at [hexdocs](https://hexdocs.pm/exneus).\n\n## Installation\n\n```elixir\ndef deps do\n  [\n    {:json_polyfill, \"~\u003e 0.1\"}, # Required only for OTP \u003c 27\n    {:exneus, \"~\u003e 0.1\"}\n  ]\nend\n```\n\n## Basic usage\n\n```elixir\niex(1)\u003e Exneus.encode!(%{name: \"Joe Armstrong\", age: 68, nationality: \"British\"})\n\"{\\\"name\\\":\\\"Joe Armstrong\\\",\\\"age\\\":68,\\\"nationality\\\":\\\"British\\\"}\"\niex(2)\u003e Exneus.decode!(v(1))\n%{\"age\" =\u003e 68, \"name\" =\u003e \"Joe Armstrong\", \"nationality\" =\u003e \"British\"}\n```\n\n## Encode\n\nFunctions that provide JSON encoding:\n\n- `Exneus.encode!/2`\n- `Exneus.encode_to_iodata!/2`\n\n## Decode\n\nFunctions that provide JSON decoding:\n\n- `Exneus.decode!/2`\n\n## Stream\n\nFunctions that provide JSON decode streaming:\n\n- `Exneus.decode_stream_start!/2`\n- `Exneus.decode_stream_continue!/2`\n- `Exneus.decode_stream_end!/1`\n\n## Format\n\nFunctions that provide JSON formatting:\n\n- `Exneus.minify/1`\n- `Exneus.minify_to_iodata/1`\n- `Exneus.format/2`\n- `Exneus.format_to_iodata/2`\n\n## Benchmark\n\nSee [BENCHMARK.md](benchmark/BENCHMARK.md) for more information.\n\n### Encode benchmark\n\n```console\n##### With input Blockchain #####\nName                 ips\neuneus           36.95 K\njson (OTP)       35.85 K - 1.03x slower +0.83 μs\nExneus           35.71 K - 1.03x slower +0.94 μs\njiffy            34.70 K - 1.06x slower +1.76 μs\nJason            26.75 K - 1.38x slower +10.32 μs\nthoas            16.40 K - 2.25x slower +33.92 μs\njsone            15.52 K - 2.38x slower +37.38 μs\njsx               4.21 K - 8.77x slower +210.29 μs\nJSON              3.88 K - 9.52x slower +230.47 μs\n\nMemory usage statistics:\n\nName               average\neuneus            84.20 KB\njson (OTP)        82.66 KB - 0.98x memory usage -1.53125 KB\nExneus            84.13 KB - 1.00x memory usage -0.06250 KB\njiffy              7.79 KB - 0.09x memory usage -76.40625 KB\nJason             78.32 KB - 0.93x memory usage -5.87500 KB\nthoas             89.41 KB - 1.06x memory usage +5.22 KB\njsone            178.56 KB - 2.12x memory usage +94.37 KB\njsx              397.30 KB - 4.72x memory usage +313.11 KB\nJSON             481.30 KB - 5.72x memory usage +397.11 KB\n```\n\n### Decode benchmark\n\n```console\n##### With input Blockchain #####\nName                 ips\njson (OTP)       18.79 K\neuneus           18.06 K - 1.04x slower +2.16 μs\nExneus           17.68 K - 1.06x slower +3.34 μs\nJason            15.16 K - 1.24x slower +12.74 μs\njsone            13.82 K - 1.36x slower +19.17 μs\njiffy            12.76 K - 1.47x slower +25.15 μs\nthoas            11.89 K - 1.58x slower +30.89 μs\njsx               4.93 K - 3.81x slower +149.64 μs\nJSON              2.43 K - 7.74x slower +358.48 μs\n\nMemory usage statistics:\n\nName               average\njson (OTP)        35.95 KB\neuneus            36.93 KB - 1.03x memory usage +0.98 KB\nExneus            37.05 KB - 1.03x memory usage +1.09 KB\nJason             51.63 KB - 1.44x memory usage +15.67 KB\njsone            131.70 KB - 3.66x memory usage +95.74 KB\njiffy              1.55 KB - 0.04x memory usage -34.40625 KB\nthoas             51.41 KB - 1.43x memory usage +15.46 KB\njsx              315.84 KB - 8.78x memory usage +279.89 KB\nJSON            1042.65 KB - 29.00x memory usage +1006.69 KB\n```\n\n## Sponsors\n\nIf you like this tool, please consider [sponsoring me](https://github.com/sponsors/williamthome).\nI'm thankful for your never-ending support :heart:\n\nI also accept coffees :coffee:\n\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/williamthome)\n\n## License\n\nCopyright (c) 2024 [William Fank Thomé](https://github.com/williamthome)\n\nExneus is 100% open-source and community-driven. All components are\navailable under the Apache 2 License on [GitHub](https://github.com/williamthome/exneus).\n\nSee [LICENSE.md](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamthome%2Fexneus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilliamthome%2Fexneus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamthome%2Fexneus/lists"}