Avro provides: Rich data structures. A compact, fast, binary data format. A container file, to store persistent data. Remote procedure call (RPC). Simple integration with dynamic languages. Code generation is not required to read or write data files nor to use or implement RPC protocols. Code generation as an optional optimization, only worth implementing for statically typed languages.
$ dotnet add package Apache.Avro.ToolsInstall the Apache.Avro package from NuGet:
Install-Package Apache.Avro
dotnet test| Project | Published to nuget.org | Type | .NET Standard 2.0 | .NET Standard 2.1 | .NET 6.0 | .NET 7.0 | .NET 8.0 |
|---|---|---|---|---|---|---|---|
| Avro.main | Apache.Avro | Library | ✔️ | ✔️ | |||
| Avro.File.Snappy | Apache.Avro.File.Snappy | Library | ✔️ | ✔️ | |||
| Avro.File.BZip2 | Apache.Avro.File.BZip2 | Library | ✔️ | ✔️ | |||
| Avro.File.XZ | Apache.Avro.File.XZ | Library | ✔️ | ✔️ |
| Avro.File.Zstandard | Apache.Avro.File.Zstandard | Library | ✔️ | ✔️ |
| Avro.codegen | Apache.Avro.Tools | Exe | ✔️ | ✔️ | ✔️ |
| Avro.ipc | Library | ✔️ | ✔️ |
| Avro.ipc.test | Unit Tests | ✔️ | ✔️ | ✔️ |
| Avro.msbuild | Library | ✔️ | ✔️ |
| Avro.perf | Exe | ✔️ | ✔️ | ✔️ |
| Avro.test | Unit Tests | ✔️ | ✔️ | ✔️ |
| Avro.benchmark | Exe | ✔️ | ✔️ | ✔️ |
Use versions.props to specify package versions. PackageReference elements in .csproj files should use only version properties defined in versions.props.
By updating the versions in our libraries, we require users of the library to update to a version equal to or greater than the version we reference. For example, if a user were to reference an older version of Newtonsoft.Json, they would be forced to update to a newer version before they could use a new version of the Avro library. In short, we should only update the version of the dependencies in our libraries if we absolutely must for functionality that we require. We leave it up to the users of the library as to whether or not they want the latest and greatest of a particularly dependency. We're only going to require the bare minimum.
The LICENSE and NOTICE files in the lang/csharp source directory are used to build the binary distribution. The LICENSE.txt and NOTICE.txt information for the Avro C# source distribution is in the root directory.
Can be found in STYLING.