This repository contains .NET libraries for CloudEvents issued by Google. The following packages are provided:
The Google.Events
package is very small and has no dependencies.
Its purpose is to expose attributes such as
CloudEventDataConverterAttribute,
as well as the
CloudEventConverters
class that uses those attributes.
The remaining packages each contain the Google event data types, but
each package supports a different serialization framework. The
intention is for frameworks such as the .NET Functions
Framework
to depend only on Google.Events
, but application code can depend on
whichever package fits in best with their other dependencies. (If
your application already depends on System.Text.Json, you may want
to avoid a dependency on Google.Protobuf, or vice versa.)
This does mean that there are multiple representations of each event type, which has potential downsides. See issue 12 for further discussion.
From the .NET Functions Framework, these packages are automatically
used for CloudEvent functions implementing
ICloudEventFunction<TData>
, where TData
is one of the event data
classes.
If you wish to use these classes in a different context, code might typically look something like this:
CloudEvent cloudEvent = ...; // However you obtain a CloudEvent
// The event data type from any of the serialization-specific packages.
StorageObjectData data = CloudEventConverters.ConvertCloudEventData<StorageData>(cloudEvent);
See BUILDING for more information about developing the code within this repository.