{"id":19591715,"url":"https://github.com/svenvc/neouniversalbinaryjson","last_synced_at":"2025-10-16T15:21:00.878Z","repository":{"id":146208645,"uuid":"213675658","full_name":"svenvc/NeoUniversalBinaryJSON","owner":"svenvc","description":"An implementation of Universal Binary JSON (UBJSON) for Pharo","archived":false,"fork":false,"pushed_at":"2020-06-29T12:48:24.000Z","size":31,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-05T00:41:19.220Z","etag":null,"topics":["json","pharo","ubjson"],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","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/svenvc.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}},"created_at":"2019-10-08T15:02:36.000Z","updated_at":"2020-06-30T21:13:53.000Z","dependencies_parsed_at":"2023-04-18T07:32:05.499Z","dependency_job_id":null,"html_url":"https://github.com/svenvc/NeoUniversalBinaryJSON","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/svenvc%2FNeoUniversalBinaryJSON","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenvc%2FNeoUniversalBinaryJSON/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenvc%2FNeoUniversalBinaryJSON/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenvc%2FNeoUniversalBinaryJSON/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svenvc","download_url":"https://codeload.github.com/svenvc/NeoUniversalBinaryJSON/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251154509,"owners_count":21544511,"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","pharo","ubjson"],"created_at":"2024-11-11T08:30:29.226Z","updated_at":"2025-10-16T15:20:55.827Z","avatar_url":"https://github.com/svenvc.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NeoUniversalBinaryJSON\nAn implementation of Universal Binary JSON (UBJSON) for Pharo.\n\n[![Build Status](https://travis-ci.org/svenvc/NeoUniversalBinaryJSON.svg?branch=master)](https://travis-ci.org/svenvc/NeoUniversalBinaryJSON)\n\nUniversal Binary JSON (UBJSON) is a computer data interchange format. It is a binary form directly imitating JSON, but requiring fewer bytes of data. It aims to achieve the generality of JSON, combined with being easier and more efficient to process than JSON.\n\nThe size/speed/efficiency differences are minor for typical JSON payloads, especially compared with compacted JSON. The implementation is simpler, though, as there is no string escaping and no number parsing.\n\nUBJSON is making a larger difference when dealing with arrays containing numbers. Especially with ByteArrays, BJSON makes a huge difference, since these are essentially stored natively.\n\nSee also\n\n- http://ubjson.org\n- https://en.wikipedia.org/wiki/UBJSON\n\n## Usage\n\nNeoUBJSONReader reads/parses a Universal Binary JSON stream. Use #on: to initialize it on a binary read stream and decode a value using #next. Its class side #fromByteArray: is convenient too.\n\nNeoUBJSONWriter writes/generates a Universal Binary JSON stream. Use #on: to initialize it on a binary write stream and encode a value using #nextPut:. Its class side #toByteArray: is convenient too.\n\n## Installation\n\nThis is a [Pharo Smalltalk](http://wwww.pharo.st) project \nusing the [Tonel](https://github.com/pharo-vcs/tonel) source code format.\n\nIn Pharo 8 you can use Iceberg to load this project.\n\nYou can also load using the following expression:\n\n    Metacello new\n      baseline: 'NeoUniversalBinaryJSON';\n      repository: 'github://svenvc/NeoUniversalBinaryJSON';\n      load.\n \n### Note about Pharo 7 Compatibility\n\nFor Pharo 7, prior to 7.0.5, you need to change the method NeoUBJSONWriter\u003e\u003e#writeInteger:ofSize:signed:bigEndian: so that it sends #digitAt: instead of #byteAt: \n\nWritten and supported by Sven Van Caekenberghe. MIT Licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvenvc%2Fneouniversalbinaryjson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvenvc%2Fneouniversalbinaryjson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvenvc%2Fneouniversalbinaryjson/lists"}