Katasec.DStream.Plugin
0.0.3
See the version list below for details.
dotnet add package Katasec.DStream.Plugin --version 0.0.3
NuGet\Install-Package Katasec.DStream.Plugin -Version 0.0.3
<PackageReference Include="Katasec.DStream.Plugin" Version="0.0.3" />
<PackageVersion Include="Katasec.DStream.Plugin" Version="0.0.3" />
<PackageReference Include="Katasec.DStream.Plugin" />
paket add Katasec.DStream.Plugin --version 0.0.3
#r "nuget: Katasec.DStream.Plugin, 0.0.3"
#:package Katasec.DStream.Plugin@0.0.3
#addin nuget:?package=Katasec.DStream.Plugin&version=0.0.3
#tool nuget:?package=Katasec.DStream.Plugin&version=0.0.3
Katasec.DStream.Plugin
.NET library for building DStream-compatible plugins using gRPC and the HashiCorp go‑plugin protocol.
Enable seamless integration of C# plugin components with the DStream CLI, leveraging the same Terraform-style plugin framework used by HashiCorp tools.
🚀 Getting Started
Prerequisites
- .NET 9.0 SDK or later
- DStream CLI (Go) installed and available on your PATH
plugin.protodefinitions (included in this package)
Installation
dotnet add package Katasec.DStream.Plugin
🛠️ Usage
Implementing a plugin
using static Katasec.DStream.Plugin.Plugin;
using Google.Protobuf.WellKnownTypes;
using Grpc.Core;
public class MyPlugin : PluginBase, IDStreamPlugin
{
public override Task<GetSchemaResponse> GetSchema(Empty request, ServerCallContext context)
{
// Your implementation here
}
// Implement other RPC methods...
}
Running the plugin
var host = new DStreamPluginHost<MyPlugin>("my-plugin-id", new MyPlugin());
host.Run(); // Or host.RunAsync(CancellationToken)
Check the Examples/ folder for a fully working example.
📘 Project Structure
src/
Katasec.DStream.Plugin/ ← Main library
Protos/ ← Contains plugin.proto
tests/
Katasec.DStream.Plugin.Tests/ ← Unit & integration tests
- Generated gRPC code lives in
Katasec.DStream.Plugin.Protos - Core types:
IDStreamPlugin,DStreamPluginHost,HashiCorpPluginUtils, along with gRPC service classes
📚 Documentation & Resources
- Protocol defined in
protos/plugin.proto - Generated types available in
Katasec.DStream.Plugin.Protos - Implements key RPCs:
GetSchema,WriteRows,Stop,HealthCheck - Package includes XML documentation for IntelliSense support
🛡️ Best Practices
This README follows Microsoft’s NuGet recommendations, including:
- Clear purpose and summary
- Quick‑start code examples
- Project layout overview
To embed this README in your NuGet package, add to your .csproj:
<PropertyGroup>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="" />
</ItemGroup>
✅ Development
git clone https://github.com/katasec/Katasec.DStream.Plugin.git
cd Katasec.DStream.Plugin
dotnet build
dotnet test
🤝 Contributing
Contributions, issues, and feature requests are welcome!
Follow the standard workflow:
- Fork the repo
- Create a feature branch (
git checkout -b feature/foo) - Commit changes (
git commit -am 'Add foo feature') - Push to your branch (
git push origin feature/foo) - Open a pull request
Refer to CONTRIBUTING.md for details.
📝 License & Support
- License: MIT
- Support: Open issues or PRs via GitHub
🏆 Acknowledgements
Thanks to the creators of the HashiCorp go‑plugin protocol and the DStream CLI for inspiring this library.
(This README is included in the NuGet package per Microsoft’s best practices.)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Google.Protobuf (>= 3.31.1)
- Grpc.AspNetCore (>= 2.71.0)
- Grpc.Net.Client (>= 2.71.0)
- HCLog.Net (>= 0.0.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Katasec.DStream.Plugin:
| Package | Downloads |
|---|---|
|
Katasec.DStream.Providers
Standard input and output providers for DStream plugins |
GitHub repositories
This package is not used by any popular GitHub repositories.