{"id":34265244,"url":"https://github.com/scalapb/scalapb","last_synced_at":"2026-05-20T03:14:32.896Z","repository":{"id":21383999,"uuid":"24701619","full_name":"scalapb/ScalaPB","owner":"scalapb","description":"Protocol buffer compiler for Scala.","archived":false,"fork":false,"pushed_at":"2025-12-10T19:03:25.000Z","size":10731,"stargazers_count":1331,"open_issues_count":60,"forks_count":292,"subscribers_count":40,"default_branch":"master","last_synced_at":"2025-12-11T06:14:05.886Z","etag":null,"topics":["protocol-buffers","scala","scalapb"],"latest_commit_sha":null,"homepage":"https://scalapb.github.io/","language":"Scala","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/scalapb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-10-02T01:11:41.000Z","updated_at":"2025-12-10T19:03:03.000Z","dependencies_parsed_at":"2023-09-29T03:23:09.478Z","dependency_job_id":"84be7751-fc55-4284-b405-8509c052e661","html_url":"https://github.com/scalapb/ScalaPB","commit_stats":{"total_commits":2430,"total_committers":131,"mean_commits":"18.549618320610687","dds":0.4024691358024691,"last_synced_commit":"bef9b1f930b0801f4d5c4281b5c917ffb62ae605"},"previous_names":["trueaccord/scalapb"],"tags_count":190,"template":false,"template_full_name":null,"purl":"pkg:github/scalapb/ScalaPB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalapb%2FScalaPB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalapb%2FScalaPB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalapb%2FScalaPB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalapb%2FScalaPB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scalapb","download_url":"https://codeload.github.com/scalapb/ScalaPB/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalapb%2FScalaPB/sbom","scorecard":{"id":330204,"data":{"date":"2025-08-11","repo":{"name":"github.com/scalapb/ScalaPB","commit":"35baf0e7fbf26e7fc203772fce60ce31aeedb511"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/30 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:143: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:147: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:91: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:133: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/scalapb/ScalaPB/test.yml/master?enable=pin","Info:   0 out of  22 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.0.0-alpha.1 not signed: https://api.github.com/repos/scalapb/ScalaPB/releases/177712168","Warn: release artifact v0.11.17 not signed: https://api.github.com/repos/scalapb/ScalaPB/releases/158714119","Warn: release artifact v0.11.16 not signed: https://api.github.com/repos/scalapb/ScalaPB/releases/158524039","Warn: release artifact v0.11.15 not signed: https://api.github.com/repos/scalapb/ScalaPB/releases/137864273","Warn: release artifact v0.11.14 not signed: https://api.github.com/repos/scalapb/ScalaPB/releases/125516439","Warn: release artifact v1.0.0-alpha.1 does not have provenance: https://api.github.com/repos/scalapb/ScalaPB/releases/177712168","Warn: release artifact v0.11.17 does not have provenance: https://api.github.com/repos/scalapb/ScalaPB/releases/158714119","Warn: release artifact v0.11.16 does not have provenance: https://api.github.com/repos/scalapb/ScalaPB/releases/158524039","Warn: release artifact v0.11.15 does not have provenance: https://api.github.com/repos/scalapb/ScalaPB/releases/137864273","Warn: release artifact v0.11.14 does not have provenance: https://api.github.com/repos/scalapb/ScalaPB/releases/125516439"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:9"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"57 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-phwq-j96m-2c2q","Warn: Project is vulnerable to: GHSA-ghr5-ch3p-vcr6","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-mf6x-hrgr-658f","Warn: Project is vulnerable to: GHSA-xrh7-m5pp-39r6","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-x7hr-w5r2-h6wg","Warn: Project is vulnerable to: GHSA-5q6m-3h65-w53x","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-g4rg-993r-mgx7","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-w5p7-h5w8-2hfq","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T03:23:01.684Z","repository_id":21383999,"created_at":"2025-08-18T03:23:01.684Z","updated_at":"2025-08-18T03:23:01.684Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27768435,"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","status":"online","status_checked_at":"2025-12-16T02:00:10.477Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["protocol-buffers","scala","scalapb"],"created_at":"2025-12-16T17:03:30.339Z","updated_at":"2026-05-20T03:14:32.890Z","avatar_url":"https://github.com/scalapb.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ScalaPB\n\n[![ScalaPB runtime version support](https://index.scala-lang.org/scalapb/scalapb/scalapb-runtime/latest-by-scala-version.svg?platform=jvm)](https://index.scala-lang.org/scalapb/scalapb/scalapb-runtime)\n\n[![Join the chat at https://gitter.im/ScalaPB/community](https://badges.gitter.im/ScalaPB/community.svg)](https://gitter.im/ScalaPB/community)\n\n[![Build Status](https://github.com/scalapb/ScalaPB/workflows/CI/badge.svg)](https://github.com/scalapb/ScalaPB/actions?query=workflow%3ACI)\n\nScalaPB is a protocol buffer compiler (`protoc`) plugin for Scala. It will\ngenerate Scala case classes, parsers and serializers for your protocol\nbuffers.\n\nScalaPB generates case classes that can co-exist in the same project alongside\nthe Java-generated code for ProtocolBuffer. This makes it easy to gradually\nmigrate an existing project from the Java version of protocol buffers to\nScala. This is achieved by having the ScalaPB generated code use the proto\nfile as part of the package name (in contrast to Java which uses the file name\nin CamelCase as an outer class)\n\nEach top-level message and enum is written to a separate Scala file. This\nresults in a significant improvement in incremental compilations.\n\nAnother cool feature of ScalaPB is that it can optionally generate methods\nthat convert a Java protocol buffer to a Scala protocol buffer and vice versa.\nThis is useful if you are gradually migrating a large code base from Java\nprotocol buffers to Scala. The optional Java conversion is required if you\nwant to use `fromAscii` (parsing ASCII representation of a protocol buffer).\nThe current implementation delegates to the Java version.\n\n# Highlights\n\n- Supports proto2 and proto3\n\n- Easily update nested structure in functional way using lenses\n\n- Scala.js integration\n\n- GRPC integration\n\n- Compatible with SparkSQL (through a helper library)\n\n- Conversion to and from JSON\n\n- Support user-defined options (since 0.5.29)\n\n- Support extensions (since 0.6.0)\n\n# Versions\n\n| Version | Description                                    |\n| ------- | ---------------------------------------------- |\n| 0.6.x   | Stable. Supports Protobuf 2.6.x to 3.5.x       |\n| 0.5.x   | Supports Protobuf 2.6.x and Protobuf 3.1.x.    |\n| 0.4.x   | Stable, unsupported. Works with Protobuf 2.6.x |\n\n# Installing\n\nTo automatically generate Scala case classes for your messages add ScalaPB's\nsbt plugin to your project. Create a file named `project/protoc.sbt`\ncontaining the following line:\n\n    addSbtPlugin(\"com.thesamet\" % \"sbt-protoc\" % \"1.0.6\")\n\n    libraryDependencies += \"com.thesamet.scalapb\" %% \"compilerplugin\" % \"0.11.3\"\n\nAdd the following line to your `build.sbt`:\n\n    Compile / PB.targets := Seq(\n      scalapb.gen() -\u003e (Compile / sourceManaged).value / \"scalapb\"\n    )\n\nFor additional configuration options, see [ScalaPB SBT Settings](https://scalapb.github.io/docs/sbt-settings) documentation\n\n# Using ScalaPB\n\nDocumentation is available at [ScalaPB website](https://scalapb.github.io/).\n\n# Questions?\n\nSee [contacting us](https://scalapb.github.io/docs/contact).\n\n# Testing\n\nScalaPB uses ScalaCheck to aggressively test the generated code. The test\ngenerates many different sets of proto files. The sets are growing in\ncomplexity: number of files, references to messages from other protos, message\nnesting and so on. Then, test data is generated to populate this protocol\nschema, then we check that the ScalaPB generated code behaves exactly like\nthe reference implementation in Java.\n\nRunning the tests:\n\n    sbt test\n\nThe tests take a few minutes to run. There is a smaller test suite called\n`e2e` that uses the sbt plugin to compile the protos and runs a series of\nScalaChecks on the outputs. To run it:\n\n    ./e2e.sh\n\n# Sponsors\n\nWe are very thankful to our sponsors:\n\n- [Evgeny Rubtsov (bikaras)](https://github.com/bikaras)\n- [Andrew Selvia](https://github.com/andrew-selvia)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalapb%2Fscalapb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscalapb%2Fscalapb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalapb%2Fscalapb/lists"}