{"id":17709237,"url":"https://github.com/brianmario/mochilo","last_synced_at":"2025-09-10T08:42:34.562Z","repository":{"id":4882815,"uuid":"6038122","full_name":"brianmario/mochilo","owner":"brianmario","description":"A ruby library for BananaPack","archived":false,"fork":false,"pushed_at":"2024-08-14T14:51:55.000Z","size":254,"stargazers_count":14,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T03:38:34.655Z","etag":null,"topics":["encoding","ruby","serialization"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"kijiproject/kiji-top-level","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brianmario.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-10-01T23:54:32.000Z","updated_at":"2025-01-14T23:09:13.000Z","dependencies_parsed_at":"2023-11-11T20:27:53.576Z","dependency_job_id":"b6f46a5b-8118-442f-9db3-0baf1708e7da","html_url":"https://github.com/brianmario/mochilo","commit_stats":{"total_commits":161,"total_committers":8,"mean_commits":20.125,"dds":"0.31677018633540377","last_synced_commit":"d3d8129d017dfba0971f48848453df4001709ad4"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianmario%2Fmochilo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianmario%2Fmochilo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianmario%2Fmochilo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianmario%2Fmochilo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianmario","download_url":"https://codeload.github.com/brianmario/mochilo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250536321,"owners_count":21446714,"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":["encoding","ruby","serialization"],"created_at":"2024-10-25T03:05:53.631Z","updated_at":"2025-04-24T00:23:09.898Z","avatar_url":"https://github.com/brianmario.png","language":"C","readme":"# Mochilo\n\nMochilo is a Ruby library implementing the BananaPack protocol. BananaPack is a superset of MessagePack. It takes advantage of the new `ext` types to extend the protocol, adding 3 new\ntypes which are used for serializing strings with an encoding other than UTF-8.\n\nThe mapping of the `ext` types are:\n\n* `ext8`  - A String in an encoding other than UTF-8 who's length is between 0 and (2^8)-1 bytes.\n* `ext16` - A String in an encoding other than UTF-8 who's length is between 0 and (2^16)-1 bytes.\n* `ext32` - A String in an encoding other than UTF-8 who's length is between 0 and (2^32)-1 bytes.\n\nAlso check out [docs/format-spec.md](docs/format-spec.md) for more detailed information on these types.\n\nStrings tagged as `ASCII-8BIT` are encoded as the `bin` types in the MessagePack spec. The type that's used depends on the length of the string. Check out the spec [here](https://github.com/msgpack/msgpack/blob/master/spec.md) for more information on those types.\n\n## Usage\n\n``` ruby\nrequire 'mochilo'\nobj = {\"key\" =\u003e \"value\"}\npacked = Mochilo.pack(obj)\n#=\u003e \"\\x81\\xD8\\x00\\x03\\x01key\\xD8\\x00\\x05\\x00value\"\n\nhash = Mochilo.unpack(packed)\n#=\u003e {\"key\"=\u003e\"value\"}\n```\n\n## Supported Ruby Types\n\nThe following Ruby types are supported. Meaning they will be deserialized into the same Ruby type they were before serialization.\n\nIf any other object type is encountered during serialization, an exception is raised. This is to ensure you have explicit control over what is being serialized.\n\n* Array\n* Bignum\n* Fixnum\n* Float\n* Hash\n* Regexp\n* String (with encoding)\n* Symbol\n* Time\n* nil\n* true\n* false\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianmario%2Fmochilo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianmario%2Fmochilo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianmario%2Fmochilo/lists"}