{"id":15159348,"url":"https://github.com/circe/circe-derivation","last_synced_at":"2025-04-06T11:08:58.231Z","repository":{"id":21245571,"uuid":"91969116","full_name":"circe/circe-derivation","owner":"circe","description":"Fast type class instance derivation for Circe","archived":false,"fork":false,"pushed_at":"2024-08-12T12:42:45.000Z","size":399,"stargazers_count":132,"open_issues_count":41,"forks_count":30,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-30T09:08:07.009Z","etag":null,"topics":["circe","json","macros","scala"],"latest_commit_sha":null,"homepage":"","language":"Scala","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/circe.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-21T15:53:21.000Z","updated_at":"2024-08-05T16:19:43.000Z","dependencies_parsed_at":"2024-10-29T18:22:19.747Z","dependency_job_id":null,"html_url":"https://github.com/circe/circe-derivation","commit_stats":{"total_commits":386,"total_committers":21,"mean_commits":18.38095238095238,"dds":0.6295336787564767,"last_synced_commit":"75be31473773ab8ac19b5091250a0f8d2bb417c1"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circe%2Fcirce-derivation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circe%2Fcirce-derivation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circe%2Fcirce-derivation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circe%2Fcirce-derivation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/circe","download_url":"https://codeload.github.com/circe/circe-derivation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247471520,"owners_count":20944158,"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":["circe","json","macros","scala"],"created_at":"2024-09-26T21:05:09.688Z","updated_at":"2025-04-06T11:08:58.213Z","avatar_url":"https://github.com/circe.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# circe-derivation\n\n[![Build status](https://img.shields.io/github/workflow/status/circe/circe-derivation/Continuous%20Integration.svg)](https://github.com/circe/circe-derivation/actions)\n[![Coverage status](https://img.shields.io/codecov/c/github/circe/circe-derivation/master.svg)](https://codecov.io/github/circe/circe-derivation)\n[![Gitter](https://img.shields.io/badge/gitter-join%20chat-green.svg)](https://gitter.im/circe/circe)\n[![Maven Central](https://img.shields.io/maven-central/v/io.circe/circe-derivation_2.12.svg)](https://maven-badges.herokuapp.com/maven-central/io.circe/circe-derivation_2.12)\n\nThis library provides macro-supported derivation of circe's type class instances. It differs from\ncirce-generic in that this derivation is not based on Shapeless's generic representation of case\nclasses and ADTs, and it is not intended to be as fully featured as `io.circe.generic`. Notably fully\nautomatic derivation is a non-goal. The only targeted remaining feature for parity is constructor renaming.\n\nIn return for losing automatic derivation you get a library that has no dependencies apart from circe-core,\nshould compile much more quickly in most cases, and supports some classes that circe-generic doesn't \n(e.g. Scrooge-generated representations of Thrift structs).\n\n## Who is this for?\n\nThere are already a lot of ways to define encoders and decoders in circe (or to avoid defining\nthem using fully-automatic derivation). In general users who want to use generic derivation should\nstick to circe-generic, which is well-tested, robust, and provides a clear path from automatic\ngeneric derivation (which can be useful for initial exploration or in relatively simple\napplications) to semi-automatic derivation (which has some syntactic overhead but tends to compile\nmuch more quickly and to be easier to reason about).\n\nUsers who want the generic derivation experience but need particular functionality that isn't\nprovided in circe-generic may be interested in circe-generic-extras, which supports transforming\nmember names, using default values, etc. (at the expense of even slower compile times).\n\nThis library is for people who don't care about the full generic derivation experience but just\nwant fast builds and instances that stay in sync with their definitions, and who don't mind a bit\nof boilerplate (a couple of lines per case class).\n\nNote that the `io.circe.derivation` API is almost identical to `io.circe.generic.semiauto`, and in\nmany situations it can be used as a drop-in replacement. If you're currently using circe-generic's\n`deriveEncoder` and `deriveDecoder` for case classes, but are still suffering from slow compilation,\nadding a circe-derivation dependency and switching the imports is probably worth a try.\n\n## Contributors and participation\n\nThis project supports the Scala [code of conduct][code-of-conduct] and we want\nall of its channels (Gitter, GitHub, etc.) to be welcoming environments for everyone.\n\nPlease see the [circe contributors' guide][contributing] for details on how to submit a pull\nrequest.\n\n## License\n\ncirce-derivation is licensed under the **[Apache License, Version 2.0][apache]**\n(the \"License\"); you may not use this software except in compliance with the\nLicense.\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n[apache]: http://www.apache.org/licenses/LICENSE-2.0\n[api-docs]: https://circe.github.io/circe-derivation/api/io/circe/\n[circe]: https://github.com/circe/circe\n[code-of-conduct]: https://www.scala-lang.org/conduct.html\n[contributing]: https://circe.github.io/circe/contributing.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirce%2Fcirce-derivation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcirce%2Fcirce-derivation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirce%2Fcirce-derivation/lists"}