Cortex.Streams.Pulsar
2.1.0
dotnet add package Cortex.Streams.Pulsar --version 2.1.0
NuGet\Install-Package Cortex.Streams.Pulsar -Version 2.1.0
<PackageReference Include="Cortex.Streams.Pulsar" Version="2.1.0" />
<PackageVersion Include="Cortex.Streams.Pulsar" Version="2.1.0" />
<PackageReference Include="Cortex.Streams.Pulsar" />
paket add Cortex.Streams.Pulsar --version 2.1.0
#r "nuget: Cortex.Streams.Pulsar, 2.1.0"
#:package Cortex.Streams.Pulsar@2.1.0
#addin nuget:?package=Cortex.Streams.Pulsar&version=2.1.0
#tool nuget:?package=Cortex.Streams.Pulsar&version=2.1.0
Cortex.Streams.Pulsar π§
Cortex.Streams.Pulsar is a streaming connector for Apache Pulsar, designed to work seamlessly within the Cortex Data Framework. It enables real-time data ingestion and publication from/to Pulsar topics, now with full support for message keys alongside values.
π Features
- π Pulsar Source Operator: Consume messages (key + value) from Pulsar topics.
- π Pulsar Sink Operator: Publish messages to Pulsar topics with optional keys.
- π§© Key Support: Allows key-based partitioning and stream grouping.
- π¦ Seamless DSL Integration: Easily compose with other Cortex stream operations.
- β‘ Built for Scale: Backed by Pulsarβs distributed, high-throughput architecture.
π Getting Started
Install via NuGet
dotnet add package Cortex.Streams.Pulsar
β Pulsar Sink Operator
In Program.cs or Startup.cs:
using Cortex.Streams;
using Cortex.Streams.Pulsar;
var pulsarSink = new PulsarSinkOperator<string>("pulsar://localhost:6650", "persistent://public/default/input-topic");
var stream = StreamBuilder<string, string>
.CreateNewStream("PulsarIngester")
.Stream()
.Sink(pulsarSink)
.Build();
stream.Start();
stream.Emit("data1");
stream.Emit("data2");
stream.Emit("data3");
β Pulsar Source Operator
using Cortex.Streams;
using Cortex.Streams.Pulsar;
var pulsarSource = new PulsarSourceOperator<string>("pulsar://localhost:6650", "persistent://public/default/input-topic");
var stream = StreamBuilder<string, string>
.CreateNewStream("PulsarProcessor")
.Stream(pulsarSource)
.Map(message => message.ToUpper())
.Sink(processed => Console.WriteLine($"Processed: {processed}"))
.Build();
stream.Start();
π Key Use Cases
- Partition-aware processing using message keys
- Sessionization and user-based aggregations
- Scalable event ingestion pipelines
π§± Prerequisites
- .NET 6.0 SDK or later
- Apache Pulsar running locally or remotely
- Add Cortex.Streams base package
π¬ Contributing
We welcome contributions from the community! Whether it's reporting bugs, suggesting features, or submitting pull requests, your involvement helps improve Cortex for everyone.
π¬ How to Contribute
- Fork the Repository
- Create a Feature Branch
git checkout -b feature/YourFeature
- Commit Your Changes
git commit -m "Add your feature"
- Push to Your Fork
git push origin feature/YourFeature
- Open a Pull Request
Describe your changes and submit the pull request for review.
π License
This project is licensed under the MIT License.
π Sponsorship
Cortex is an open-source project maintained by BuilderSoft. Your support helps us continue developing and improving Cortex. Consider sponsoring us to contribute to the future of resilient streaming platforms.
How to Sponsor
- Financial Contributions: Support us through GitHub Sponsors or other preferred platforms.
- Corporate Sponsorship: If your organization is interested in sponsoring Cortex, please contact us directly.
Contact Us: cortex@buildersoft.io
Contact
We'd love to hear from you! Whether you have questions, feedback, or need support, feel free to reach out.
- Email: cortex@buildersoft.io
- Website: https://buildersoft.io
- GitHub Issues: Cortex Data Framework Issues
- Join our Discord Community:
Thank you for using Cortex Data Framework! We hope it empowers you to build scalable and efficient data processing pipelines effortlessly.
Built with β€οΈ by the Buildersoft team.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
-
net7.0
- Cortex.Streams (>= 2.1.0)
- DotPulsar (>= 4.3.1)
- Google.Protobuf (>= 3.31.1)
- Newtonsoft.Json (>= 13.0.3)
- protobuf-net (>= 3.2.55)
-
net8.0
- Cortex.Streams (>= 2.1.0)
- DotPulsar (>= 4.3.1)
- Google.Protobuf (>= 3.31.1)
- Newtonsoft.Json (>= 13.0.3)
- protobuf-net (>= 3.2.55)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Just as the Cortex in our brains handles complex processing efficiently, Cortex Data Framework brings brainpower to your data management!