{"id":19898975,"url":"https://github.com/arkency/protobuf-nested-struct","last_synced_at":"2025-05-02T22:31:43.454Z","repository":{"id":56889322,"uuid":"130076561","full_name":"arkency/protobuf-nested-struct","owner":"arkency","description":"Serialize primitives and deep structures (array, hash) to protobuf","archived":false,"fork":false,"pushed_at":"2024-03-13T13:42:34.000Z","size":30,"stargazers_count":4,"open_issues_count":6,"forks_count":1,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-10-31T14:42:22.682Z","etag":null,"topics":["events","eventsourcing","marshalling","microservices","protobuf","protocol-buffers","rpc","ruby","serialization","serialize","serializer"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/arkency.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2018-04-18T14:39:12.000Z","updated_at":"2024-03-13T13:31:43.000Z","dependencies_parsed_at":"2022-08-20T16:00:08.415Z","dependency_job_id":null,"html_url":"https://github.com/arkency/protobuf-nested-struct","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkency%2Fprotobuf-nested-struct","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkency%2Fprotobuf-nested-struct/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkency%2Fprotobuf-nested-struct/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkency%2Fprotobuf-nested-struct/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arkency","download_url":"https://codeload.github.com/arkency/protobuf-nested-struct/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224341555,"owners_count":17295268,"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":["events","eventsourcing","marshalling","microservices","protobuf","protocol-buffers","rpc","ruby","serialization","serialize","serializer"],"created_at":"2024-11-12T20:06:41.881Z","updated_at":"2024-11-12T20:06:42.543Z","avatar_url":"https://github.com/arkency.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProtobufNestedStruct\n\nSerialize your primitives, arrays and hashes using protobuf. Supports nested arrays and hashes.\n\nSupported types:\n\n* nil\n* integer\n* float\n* boolean\n* string\n* date\n* time\n* hash (keys must be strings, values' types must be on this list)\n* array (elements' types must be on this list)\n\nInspired by `google/protobuf/struct.proto` but it can additionally handle Date, Time and Integer values.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'protobuf_nested_struct'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install protobuf_nested_struct\n\n## Usage\n\n```ruby\n# store the serialized binary string in DB or send over network\nserialized = ProtobufNestedStruct.dump(v)\n\n\n# receive de-serialized binary string from DB or network \ncopy = ProtobufNestedStruct.load(serialized)\n\nexpect(copy).to eql(obj)\n```\n\nwhere `obj` can be an instance of one of the supported types.\n\n## Protobuf schema definition\n\nYou can use it to generate code for serialization and deserialization in any programming language supported\nby Protobuf.\n\n* https://github.com/arkency/protobuf-nested-struct/blob/master/lib/protobuf_nested_struct/struct.proto\n\n## Development\n\n* `bundle install`\n* `bundle exec rspec`\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/arkency/protobuf-nested-struct \n\n## Credits\n\n* https://github.com/google/protobuf/blob/07b9238a1c03ef0351bcb4ca57d773eb7b7c5824/src/google/protobuf/struct.proto\n* https://github.com/google/protobuf/blob/9497a657d577ebda0272711651c3dcdda3a4ac35/ruby/lib/google/protobuf/well_known_types.rb#L149\n* https://github.com/google/protobuf/blob/9497a657d577ebda0272711651c3dcdda3a4ac35/ruby/tests/well_known_types_test.rb#L35\n\n## About\n\n\u003cimg src=\"https://arkency.com/images/arkency.png\" alt=\"Arkency\" width=\"60px\" align=\"left\" /\u003e\n\nThis repository is funded and maintained by [Arkency](https://arkency.com). Check out our other [open-source projects](https://github.com/arkency), especially [Rails Event Store](https://github.com/RailsEventStore).\n\nConsider [hiring us](https://arkency.com/hire-us) to grow your Ruby/Rails apps and business. Make sure to check out [our blog](https://blog.arkency.com).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkency%2Fprotobuf-nested-struct","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkency%2Fprotobuf-nested-struct","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkency%2Fprotobuf-nested-struct/lists"}