{"id":23773515,"url":"https://github.com/beenotung/bon","last_synced_at":"2026-04-29T00:05:37.737Z","repository":{"id":90774376,"uuid":"108137584","full_name":"beenotung/bon","owner":"beenotung","description":"stackish based decode and encode library in Erlang and Typescript","archived":false,"fork":false,"pushed_at":"2024-07-09T12:55:15.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-01T05:41:58.820Z","etag":null,"topics":["erlang","library","stackish"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@beenotung/bon","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beenotung.png","metadata":{"files":{"readme":"README.asciidoc","changelog":null,"contributing":null,"funding":null,"license":null,"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-10-24T14:20:47.000Z","updated_at":"2024-07-09T12:55:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"44e6026e-8b61-4cc7-9486-2039d94cb51d","html_url":"https://github.com/beenotung/bon","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beenotung%2Fbon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beenotung%2Fbon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beenotung%2Fbon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beenotung%2Fbon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beenotung","download_url":"https://codeload.github.com/beenotung/bon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239961035,"owners_count":19725448,"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":["erlang","library","stackish"],"created_at":"2025-01-01T05:40:59.910Z","updated_at":"2026-04-03T03:30:21.373Z","avatar_url":"https://github.com/beenotung.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"= BON =\n\nimage:https://secure.travis-ci.org/beenotung/bon.png?branch=master[Build Status,link=http://travis-ci.org/beenotung/bon]\nimage:https://img.shields.io/npm/v/@beenotung/bon.svg?maxAge=2592000[npm Package Version,link=https://www.npmjs.com/package/@beenotung/bon]\n\nBinary Object Notation,\nA.K.A. Beeno Object Notation\n\nBased on stackish.\n\nAvailable as a https://www.npmjs.org/package/@beenotung/bon[npm package at @beenotung/bon].\n\n== Introduction ==\n\nThis protocol and library is designed to enable loss-less data exchange between Erlang to Javascript.\n\nLoss-less means it will not mess up tuple and list, nor atom and hashmap key\n\n* Integer is represented in dec format, e.g. 42\n\n* Floating number is represented in rational format (of integer), e.g. 314/100\n\n== Remark ==\n\n(For ideal performance, consider to use https://github.com/beenotung/erlang_js[@beenotung/erlang_js] which use Erlang External Term Format directly)\n\n== The Mapping between Erlang term, BON and Javascript term ==\n\n.Data Type Mapping Table\n[options=\"header\"]\n|=========================================\n| Erlang    | BON             | Javascript\n\n| integer   | integer         | number\n| float     | rational number | number\n| atom      | atom blob       | Symbol\n| binary    | binary blob     | Uint8Array\n| tuple     | tuple group     | Tuple\n| list      | list group      | List / Array\n| char_list | string          | string\n| map       | map group       | Map / object\n| set       | set group       | Set\n|=========================================\n\n== Examples ==\n\n.BON data type representation\n|==============================\n| Data Type       | BON Example\n\n| integer         | 42\n| rational number | 157/50\n| atom blob       | 'a:3:foo'\n| binary blob     | 'b:4:text'\n| tuple group     | [ 3 2 1 t\n| list group      | [ 3 2 1 l\n| string          | \"foo\"\n| map group       | [ \"admin\" \"user\" \"123\" \"pw\" m\n| set group       | [ 42 3.14 \"str\" s\n|==============================\n\n\n== TODO ==\n. Migrate the repo from personal to [bon-org](https://github.com/bon-org)\n  - [x] move javascript/typescript package to [bon-js](https://github.com/bon-org/bon-js)\n  - [x] move erlang package to [bon-erl](https://github.com/bon-org/bon-erlang)\n  - [ ] update link to build status and npm package in readme\n. Implement Golang library\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeenotung%2Fbon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeenotung%2Fbon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeenotung%2Fbon/lists"}