Protocol Buffers [Kotlin Core]: Technical Overview and Working Mechanism
kotlin
import com.google.protobuf.*
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
repeated string hobbies = 3;
}
fun main() {
val person = Person.newBuilder()
.setName("Alice")
.setAge(25)
.addHobbies("reading")
.addHobbies("coding")
.build()
val data = person.toByteArray()
val deserializedPerson = Person.parseFrom(data)
println("Name: ${deserializedPerson.name}")
println("Age: ${deserializedPerson.age}")
println("Hobbies: ${deserializedPerson.hobbiesList}")
}
kotlin
plugins {
id("com.google.protobuf") version "0.8.17"
}
kotlin
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.17.3"
}
plugins {
id("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:1.37.1"
}
id("grpckt") {
artifact = "io.grpc:protoc-gen-grpckt:1.37.1-jdk8"
}
id("kotlin") {
artifact = "com.google.protobuf:protoc-gen-kotlin:1.7.1"
}
}
generateProtoTasks {
all().each {
it.plugins {
id("kotlin")
}
}
}
}