Skip to content
/ bsonpb Public

serialize/deserialize golang protobuf messages into/from bson documents.

License

Notifications You must be signed in to change notification settings

romnn/bsonpb

Repository files navigation

bsonpb

Build Status GitHub GoDoc Test Coverage Release

This package allows to serialize/deserialize golang protobuf messages into/from bson documents.

Important notes:

import "github.com/romnn/bsonpb/v2" // only works with google.golang.org/protobuf, NOT github.com/golang/protobuf

Usage (v2)

Marshaling
import "github.com/romnn/bsonpb/v2"

myProto := &pb.Message{Name: "Test", Hilarity: pb.Message_SLAPSTICK}
opts := bsonpb.MarshalOptions{}
marshaled, err := opts.Marshal(someProto)
if err != nil {
    log.Fatal(err)
}
log.Infof("Marshaled: %v", marshaled)
Unmarshaling
import "github.com/romnn/bsonpb/v2"

var myProto pb.Message
inputBson := bson.D{{Key: "Name", Value: "Test"}}
if err := bsonpb.Unmarshal(inputBson, &myProto); err != nil {
    log.Fatal(err)
}
log.Infof("Unmarshaled: %v", myProto)

If you want to try it, you can run the provided example with

bazel run //examples/v2:example

Tests

bazel test //:go_default_test
bazel test //v2:go_default_test # v2 only

Acknowledgements

About

serialize/deserialize golang protobuf messages into/from bson documents.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published