Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
com.thesamet.scalapb:scalapb-runtime-grpc_2.13
Advanced tools
ScalaPB is a protocol buffer compiler (protoc
) plugin for Scala. It will
generate Scala case classes, parsers and serializers for your protocol
buffers.
ScalaPB generates case classes that can co-exist in the same project alongside the Java-generated code for ProtocolBuffer. This makes it easy to gradually migrate an existing project from the Java version of protocol buffers to Scala. This is achieved by having the ScalaPB generated code use the proto file as part of the package name (in contrast to Java which uses the file name in CamelCase as an outer class)
Each top-level message and enum is written to a separate Scala file. This results in a significant improvement in incremental compilations.
Another cool feature of ScalaPB is that it can optionally generate methods
that convert a Java protocol buffer to a Scala protocol buffer and vice versa.
This is useful if you are gradually migrating a large code base from Java
protocol buffers to Scala. The optional Java conversion is required if you
want to use fromAscii
(parsing ASCII representation of a protocol buffer).
The current implementation delegates to the Java version.
Supports proto2 and proto3
Easily update nested structure in functional way using lenses
Scala.js integration
GRPC integration
Compatible with SparkSQL (through a helper library)
Conversion to and from JSON
Support user-defined options (since 0.5.29)
Support extensions (since 0.6.0)
Version | Description |
---|---|
0.6.x | Stable. Supports Protobuf 2.6.x to 3.5.x |
0.5.x | Supports Protobuf 2.6.x and Protobuf 3.1.x. |
0.4.x | Stable, unsupported. Works with Protobuf 2.6.x |
To automatically generate Scala case classes for your messages add ScalaPB's
sbt plugin to your project. Create a file named project/protoc.sbt
containing the following line:
addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.6")
libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.11.3"
Add the following line to your build.sbt
:
Compile / PB.targets := Seq(
scalapb.gen() -> (Compile / sourceManaged).value / "scalapb"
)
For additional configuration options, see ScalaPB SBT Settings documentation
Documentation is available at ScalaPB website.
See contacting us.
ScalaPB uses ScalaCheck to aggressively test the generated code. The test generates many different sets of proto files. The sets are growing in complexity: number of files, references to messages from other protos, message nesting and so on. Then, test data is generated to populate this protocol schema, then we check that the ScalaPB generated code behaves exactly like the reference implementation in Java.
Running the tests:
$ sbt test
The tests take a few minutes to run. There is a smaller test suite called
e2e
that uses the sbt plugin to compile the protos and runs a series of
ScalaChecks on the outputs. To run it:
$ ./e2e.sh
We are very thankful to our sponsors:
FAQs
scalapb-runtime-grpc
We found that com.thesamet.scalapb:scalapb-runtime-grpc_2.13 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.