{"id":13463471,"url":"https://github.com/ohler55/oj","last_synced_at":"2025-05-12T05:16:28.747Z","repository":{"id":2494419,"uuid":"3468618","full_name":"ohler55/oj","owner":"ohler55","description":"Optimized JSON","archived":false,"fork":false,"pushed_at":"2025-05-11T21:38:37.000Z","size":4223,"stargazers_count":3174,"open_issues_count":7,"forks_count":259,"subscribers_count":39,"default_branch":"develop","last_synced_at":"2025-05-12T01:01:44.416Z","etag":null,"topics":["c","json","json-parser","marshaller","oj-gem","rails","ruby","ruby-json-parser"],"latest_commit_sha":null,"homepage":"http://www.ohler.com/oj","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ohler55.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"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,"zenodo":null},"funding":{"github":["ohler55"]}},"created_at":"2012-02-17T09:30:32.000Z","updated_at":"2025-05-11T21:24:47.000Z","dependencies_parsed_at":"2024-02-14T23:28:24.210Z","dependency_job_id":"c37b7d5b-218f-4d96-930d-569052a21380","html_url":"https://github.com/ohler55/oj","commit_stats":{"total_commits":1402,"total_committers":124,"mean_commits":"11.306451612903226","dds":"0.22824536376604854","last_synced_commit":"7388e5bfef4bf001e824f97a68b022a25cb148cc"},"previous_names":[],"tags_count":252,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohler55%2Foj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohler55%2Foj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohler55%2Foj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohler55%2Foj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ohler55","download_url":"https://codeload.github.com/ohler55/oj/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253656407,"owners_count":21943081,"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":["c","json","json-parser","marshaller","oj-gem","rails","ruby","ruby-json-parser"],"created_at":"2024-07-31T13:00:54.022Z","updated_at":"2025-05-12T05:16:28.715Z","avatar_url":"https://github.com/ohler55.png","language":"C","readme":"# [![{}j](http://www.ohler.com/dev/images/oj_comet_64.svg)](http://www.ohler.com/oj) gem\n\n[![CI](https://github.com/ohler55/oj/actions/workflows/CI.yml/badge.svg)](https://github.com/ohler55/oj/actions/workflows/CI.yml)\n![Gem](https://img.shields.io/gem/v/oj.svg)\n![Gem](https://img.shields.io/gem/dt/oj.svg)\n[![TideLift](https://tidelift.com/badges/github/ohler55/oj)](https://tidelift.com/subscription/pkg/rubygems-oj?utm_source=rubygems-oj\u0026utm_medium=referral\u0026utm_campaign=readme)\n\nA *fast* JSON parser and Object marshaller as a Ruby gem.\n\nVersion 3.13 is out with a much faster parser (`Oj::Parser`) and option isolation.\n\n## Using\n\n```ruby\nrequire 'oj'\n\nh = { 'one' =\u003e 1, 'array' =\u003e [ true, false ] }\njson = Oj.dump(h)\n\n# json =\n# {\n#   \"one\":1,\n#   \"array\":[\n#     true,\n#     false\n#   ]\n# }\n\nh2 = Oj.load(json)\nputs \"Same? #{h == h2}\"\n# true\n```\n\n## Installation\n```\ngem install oj\n```\n\nor in Bundler:\n\n```\ngem 'oj'\n```\n\n## Rails and json quickstart\n\nSee the Quickstart sections of the [Rails](pages/Rails.md) and [json](pages/JsonGem.md) docs.\n\n## multi_json\n\nCode which uses [multi_json](https://github.com/intridea/multi_json)\nwill automatically prefer Oj if it is installed.\n\n## Support\n\n[Get supported Oj with a Tidelift Subscription.](https://tidelift.com/subscription/pkg/rubygems-oj?utm_source=rubygems-oj\u0026utm_medium=referral\u0026utm_campaign=readme) Security updates are [supported](https://tidelift.com/security).\n\n## Further Reading\n\nFor more details on options, modes, advanced features, and more follow these\nlinks.\n\n - [{file:Options.md}](pages/Options.md) for parse and dump options.\n - [{file:Modes.md}](pages/Modes.md) for details on modes for strict JSON compliance, mimicking the JSON gem, and mimicking Rails and ActiveSupport behavior.\n - [{file:JsonGem.md}](pages/JsonGem.md) includes more details on json gem compatibility and use.\n - [{file:Rails.md}](pages/Rails.md) includes more details on Rails and ActiveSupport compatibility and use.\n - [{file:Custom.md}](pages/Custom.md) includes more details on Custom mode.\n - [{file:Encoding.md}](pages/Encoding.md) describes the :object encoding format.\n - [{file:Compatibility.md}](pages/Compatibility.md) lists current compatibility with Rubys and Rails.\n - [{file:Advanced.md}](pages/Advanced.md) for fast parser and marshalling features.\n - [{file:Security.md}](pages/Security.md) for security considerations.\n - [{file:InstallOptions.md}](pages/InstallOptions.md) for install option.\n\n## Releases\n\nSee [{file:CHANGELOG.md}](CHANGELOG.md) and [{file:RELEASE_NOTES.md}](RELEASE_NOTES.md)\n\n## Links\n\n- *Documentation*: http://www.ohler.com/oj/doc, http://rubydoc.info/gems/oj\n\n- *GitHub* *repo*: https://github.com/ohler55/oj\n\n- *RubyGems* *repo*: https://rubygems.org/gems/oj\n\nFollow [@peterohler on Twitter](http://twitter.com/peterohler) for announcements and news about the Oj gem.\n\n#### Performance Comparisons\n\n - [Oj Strict Mode Performance](http://www.ohler.com/dev/oj_misc/performance_strict.html) compares Oj strict mode parser performance to other JSON parsers.\n\n - [Oj Compat Mode Performance](http://www.ohler.com/dev/oj_misc/performance_compat.html) compares Oj compat mode parser performance to other JSON parsers.\n\n - [Oj Object Mode Performance](http://www.ohler.com/dev/oj_misc/performance_object.html) compares Oj object mode parser performance to other marshallers.\n\n - [Oj Callback Performance](http://www.ohler.com/dev/oj_misc/performance_callback.html) compares Oj callback parser performance to other JSON parsers.\n\n#### Links of Interest\n\n - *Fast XML parser and marshaller on RubyGems*: https://rubygems.org/gems/ox\n\n - *Fast XML parser and marshaller on GitHub*: https://github.com/ohler55/ox\n\n - [Need for Speed](http://www.ohler.com/dev/need_for_speed/need_for_speed.html) for an overview of how Oj::Doc was designed.\n\n - *OjC, a C JSON parser*: https://www.ohler.com/ojc also at https://github.com/ohler55/ojc\n\n - *Agoo, a high performance Ruby web server supporting GraphQL on GitHub*: https://github.com/ohler55/agoo\n\n - *Agoo-C, a high performance C web server supporting GraphQL on GitHub*: https://github.com/ohler55/agoo-c\n\n - *oj-introspect, an example of creating an Oj parser extension in C*: https://github.com/meinac/oj-introspect\n\n#### Contributing\n\n+ Provide a Pull Request off the `develop` branch.\n+ Report a bug\n+ Suggest an idea\n+ Code is now formatted with the clang-format tool with the configuration file in the root of the repo.\n","funding_links":["https://github.com/sponsors/ohler55","https://tidelift.com/badges/github/ohler55/oj","https://tidelift.com/subscription/pkg/rubygems-oj?utm_source=rubygems-oj\u0026utm_medium=referral\u0026utm_campaign=readme","https://tidelift.com/security"],"categories":["Web Apps, Services \u0026 Interaction","C","Libraries","Input and Output","c","High Performance Libraries","Gems","Optimization"],"sub_categories":["JSON Parsers","General formats","Application Insights","Serialization"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohler55%2Foj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fohler55%2Foj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohler55%2Foj/lists"}