{"id":19085104,"url":"https://github.com/riferrei/srclient","last_synced_at":"2025-05-15T07:04:11.859Z","repository":{"id":38009507,"uuid":"198880158","full_name":"riferrei/srclient","owner":"riferrei","description":"Golang Client for Schema Registry","archived":false,"fork":false,"pushed_at":"2025-03-30T16:54:20.000Z","size":900,"stargazers_count":248,"open_issues_count":8,"forks_count":74,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-14T10:42:49.907Z","etag":null,"topics":["apache","avro","cloud","codec","confluent","go","kafka","registry","schema"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/riferrei.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,"zenodo":null}},"created_at":"2019-07-25T18:09:29.000Z","updated_at":"2025-04-08T06:01:15.000Z","dependencies_parsed_at":"2024-06-18T12:42:22.886Z","dependency_job_id":"b020c4d3-f6ed-4285-99a7-a681fe9ebeb7","html_url":"https://github.com/riferrei/srclient","commit_stats":{"total_commits":131,"total_committers":34,"mean_commits":"3.8529411764705883","dds":0.6030534351145038,"last_synced_commit":"cc12a779c9e04df16b107ba24f51c314aebc7cf1"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riferrei%2Fsrclient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riferrei%2Fsrclient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riferrei%2Fsrclient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riferrei%2Fsrclient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/riferrei","download_url":"https://codeload.github.com/riferrei/srclient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254292039,"owners_count":22046426,"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":["apache","avro","cloud","codec","confluent","go","kafka","registry","schema"],"created_at":"2024-11-09T02:54:34.124Z","updated_at":"2025-05-15T07:04:11.832Z","avatar_url":"https://github.com/riferrei.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Schema Registry Client for Go\n\n [![Go Report Card](https://goreportcard.com/badge/github.com/riferrei/srclient)](https://goreportcard.com/report/github.com/riferrei/srclient) [![Go Reference](https://pkg.go.dev/badge/github.com/riferrei/srclient.svg)](https://pkg.go.dev/github.com/riferrei/srclient)\n\n\u003cimg src=\"https://github.com/riferrei/srclient/raw/master/images/Gopher_Dropping_Mic.png\" width=\"150\" height=\"150\"\u003e\n\n**srclient** is a Golang client for [Schema Registry](https://www.confluent.io/confluent-schema-registry/), a software that provides a RESTful interface for developers to define standard schemas for their events, share them across the organization, and safely evolve them in a way that is backward compatible and future proof.\nUsing this client allows developers to build Golang programs that write and read schema compatible records to/from [Apache Kafka](https://kafka.apache.org/) using [Avro](https://avro.apache.org/), [Protobuf](https://developers.google.com/protocol-buffers), and [JSON Schemas](https://json-schema.org) while Schema Registry is used to manage the schemas used.\nUsing this architecture, producers programs interact with Schema Registry to retrieve schemas and use it to serialize records. Then consumer programs can retrieve the same schema from Schema Registry to deserialize the records.\nYou can read more about the benefits of using Schema Registry [here](https://www.confluent.io/blog/schemas-contracts-compatibility).\n\n## Features\n\n* **Simple to Use** - This client provides a very high-level abstraction over the operations developers writing programs for Apache Kafka typically need.\nThus, it will feel natural for them to use this client's functions.\nMoreover, developers don't need to handle low-level HTTP details to communicate with Schema Registry.\n* **Performance** - This client provides caching capabilities.\nThis means that any data retrieved from Schema Registry can be cached locally to improve the performance of subsequent requests.\nThis allows programs not co-located with Schema Registry to reduce the latency necessary on each request.\nThis functionality can be disabled programmatically.\n\n**License**: [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0)\n\n## Installation\n\nModule install:\n\nThis client is a Go module, therefore you can have it simply by adding the following import to your code:\n\n```go\nimport \"github.com/riferrei/srclient\"\n```\n\nThen run a build to have this client automatically added to your go.mod file as a dependency.\n\nManual install:\n\n```bash\ngo get -u github.com/riferrei/srclient\n```\n\n## Testing\n\nUnit testing can be run with the generic go test command:\n\n```bash\ngo test -cover -v ./...\n```\n\nYou can also run integration testing in your local machine given you have docker installed:\n\n```bash\ndocker compose up --exit-code-from srclient-integration-test\ndocker compose down --rmi local\n```\n\n## Getting Started \u0026 Examples\n\n* [Package documentation](https://pkg.go.dev/github.com/riferrei/srclient) is a good place to start\n* For Avro examples see [EXAMPLES_AVRO.md](EXAMPLES_AVRO.md)\n* For Protobuf examples, see [EXAMPLES_PROTOBUF.md](EXAMPLES_PROTOBUF.md)\n* Consult [Confluent's Schema Registry documentation](https://docs.confluent.io/platform/current/schema-registry/index.html) for details\n\n\n## Acknowledgements\n* Apache, Apache Kafka, Kafka, and associated open source project names are trademarks of the [Apache Software Foundation](https://www.apache.org/).\n* The [Go Gopher](https://blog.golang.org/gopher), is an artistic creation of [Renee French](http://reneefrench.blogspot.com/).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friferrei%2Fsrclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friferrei%2Fsrclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friferrei%2Fsrclient/lists"}