This library provides APIs for serializing and deserializing subtypes of Ballerina anydata type.
An instance of the serdes:Proto3Schema
class is used to serialize and deserialize ballerina values using protocol buffers.
// Define a type which is a subtype of anydata.
type Student record {
int id;
string name;
decimal fees;
};
// Create a schema object by passing the type.
serdes:Proto3Schema schema = check new (Student);
While instantiation of this object, an underlying proto3 schema generated for the provided typedesc.
Student student = {
id: 7894,
name: "Liam",
fees: 24999.99
};
// Serialize the record value to bytes.
byte[] bytes = check schema.serialize(student);
A value having the same type as the provided type can be serialized by invoking the serialize
method on the previously instantiated serdes:Proto3Schema
object. The underlying implementation uses the previously generated proto3 schema to serialize the provided value.
type Student record {
int id;
string name;
decimal fees;
};
byte[] bytes = readSerializedDataToByteArray();
serdes:Proto3Schema schema = check new (Student);
// Deserialize the record value from bytes.
Student student = check schema.deserialize(bytes);
The serialized value (byte[]
) can be again deserialized by invoking the deserialize
method on the instantiated serdes:Proto3Schema
object. The underlying implementation uses the previously generated proto3 schema and deserializes the provided byte[]
. As the result of deserialization the method returns the ballerina value with the type represented by the typedesc value provided during the serdes:Proto3Schema
object instantiation.
The Issues and Projects tabs are disabled for this repository as this is part of the Ballerina Standard Library. To report bugs, request new features, start new discussions, view project boards, etc., go to the Ballerina Standard Library parent repository.
This repository contains only the source code of the package.
-
Download and install Java SE Development Kit (JDK) version 11 (from one of the following locations).
-
Export your Github Personal access token with the read package permissions as follows.
export packageUser=<Username> export packagePAT=<Personal access token>
Execute the commands below to build from source.
-
To build the package:
./gradlew clean build
-
To run the integration tests:
./gradlew clean test
-
To build the package without the tests:
./gradlew clean build -x test
-
To debug the tests:
./gradlew clean build -Pdebug=<port>
As an open source project, Ballerina welcomes contributions from the community.
For more information, go to the contribution guidelines.
All contributors are encouraged to read the Ballerina Code of Conduct.
- Discuss about code changes of the Ballerina project in ballerina-dev@googlegroups.com.
- Chat live with us via our Slack channel.
- Post all technical questions on Stack Overflow with the #ballerina tag.