Ballerina SerDes Library
Deprecation Notice: This library is deprecated and will no longer be maintained or updated.
This library provides APIs for serializing and deserializing subtypes of Ballerina anydata type.
Proto3Schema
An instance of the serdes:Proto3Schema
class is used to serialize and deserialize ballerina values using protocol buffers.
serdes:Proto3Schema
object
Create a // 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.
Serialization
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.
Deserialization
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.
Issues and Projects
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.
Building from the Source
Setting Up the Prerequisites
-
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>
Building the Source
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>
Contributing to Ballerina
As an open source project, Ballerina welcomes contributions from the community.
For more information, go to the contribution guidelines.
Code of Conduct
All contributors are encouraged to read the Ballerina Code of Conduct.
Useful Links
- Discuss about code changes of the Ballerina project in [email protected].
- Chat live with us via our Discord server.
- Post all technical questions on Stack Overflow with the #ballerina tag.