Creating a Package
Creating a new, consumable, Buffrs package can be done in four steps:
- Initialize a project using
buffrs init
- Set metadata, package type, version correctly and declare the dependencies that you want to use.
- Declare
message
,enum
andservice
types you want to publish in the newly createdproto
folder using.proto
files. - Publish to a registry using
buffrs publish
.
Example: Publishing physics
Initialize Your Project
Start by initializing a new Buffrs project using the buffrs init command. This will set up the basic structure for your package and allow you to manage your package's metadata and dependencies.
mkdir physics
cd physics
buffrs init --lib
Define Package Metadata and Dependencies
In your project folder, locate the Proto.toml
file. This is where you'll
specify your package's metadata and dependencies. Open this file in a text
editor.
Here's an example Proto.toml
file:
# Package metadata
[package]
package = "physics"
version = "1.0.0"
type = "lib"
description = "A library containing physic related types"
# Declare dependencies (none in this case)
[dependencies]
Define Message, Enum, and Service Types
Inside your project directory, buffrs init
created a proto
folder. This is
where you will store your .proto
files that define your library or api.
An example file structure:
physics
├── Proto.toml
└── proto
├── temperature.proto
├── mass.proto
└── vendor
Write your Protocol Buffer definitions in these .proto
files. Here's a simple
example of the temperature.proto
file that could be in a physics library:
syntax = "proto3";
package physics.temperature;
// Define temperature units
enum TemperatureUnit {
CELSIUS = 0;
FAHRENHEIT = 1;
KELVIN = 2;
}
// Define a message for temperature
message Temperature {
double value = 1; // Temperature value
TemperatureUnit unit = 2; // Temperature unit (Celsius, Fahrenheit, Kelvin)
}
Publish Your Package
Once you've set up your Buffrs package and defined your Protocol Buffer definitions, you can publish it to a registry using the buffrs publish command. Make sure you're logged in to the registry if required.
buffrs publish --registry https://your.registry.com --repository tutorial
Your package will be uploaded to the registry, and others can now consume it using Buffrs.
Congratulations! You've successfully published your Buffrs package. Other developers can now use your Protocol Buffer definitions by adding your package as a dependency in their Buffrs projects.
That's it! You've created a Buffrs package that others can easily consume. Remember to keep your package up-to-date and well-documented to make it even more valuable to the community.