Katasec.DStream.Plugin 0.0.5

dotnet add package Katasec.DStream.Plugin --version 0.0.5
                    
NuGet\Install-Package Katasec.DStream.Plugin -Version 0.0.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Katasec.DStream.Plugin" Version="0.0.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Katasec.DStream.Plugin" Version="0.0.5" />
                    
Directory.Packages.props
<PackageReference Include="Katasec.DStream.Plugin" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Katasec.DStream.Plugin --version 0.0.5
                    
#r "nuget: Katasec.DStream.Plugin, 0.0.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Katasec.DStream.Plugin@0.0.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Katasec.DStream.Plugin&version=0.0.5
                    
Install as a Cake Addin
#tool nuget:?package=Katasec.DStream.Plugin&version=0.0.5
                    
Install as a Cake Tool

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.proto definitions (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:

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/foo)
  3. Commit changes (git commit -am 'Add foo feature')
  4. Push to your branch (git push origin feature/foo)
  5. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.5 136 6/29/2025
0.0.4 135 6/29/2025
0.0.3 136 6/29/2025
0.0.2 95 6/28/2025
0.0.1 90 6/28/2025