blob: 9f9cf32984f5d265a374237e100e6859d091355e [file]
module.exports = {
languages: [
{
name: "Java",
url: "https://github.com/apache/pulsar/tree/master/pulsar-client",
description: "Java Client"
},
{
name: "C++",
url: "https://github.com/apache/pulsar-client-cpp",
description: "C++ Client"
},
{
name: "Go",
url: "https://github.com/apache/pulsar-client-go",
description: "Go Client"
},
{
name: "Python",
url: "https://github.com/apache/pulsar-client-python",
description: "Python Client"
},
{
name: "Node.js",
url: "https://github.com/apache/pulsar-client-node",
description: "Node.js Client"
},
{
name: "Rust",
url: "https://github.com/streamnative/pulsar-rs",
description: "Rust Client"
},
{
name: "C#/DotPulsar",
url: "https://github.com/apache/pulsar-dotpulsar",
description: "C#/.NET Client (Official Apache)"
},
{
name: ".NET (C#/F#/VB)",
url: "https://github.com/fsprojects/pulsar-client-dotnet",
description: ".NET Client (Community F#)"
},
{
name: "Websocket",
url: "https://github.com/apache/pulsar/tree/master/pulsar-websocket",
description: "WebSocket Client"
},
{
name: "REST",
url: "https://pulsar.apache.org/docs/admin-rest-api/",
description: "REST API"
},
],
client: [
{
Feature: "TLS encryption",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Authentication",
Children: [
{
Feature: "JWT",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "mTLS",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Kerberos",
Java: 2,
"C++": 0,
Go: 0,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "OAuth2",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Athenz",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "HTTP Basic",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Transaction",
Java: 2,
"C++": 0,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Cluster-level failover",
Java: 2,
"C++": 0,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Multi-host service",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Statistics",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Proxy",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Reconnection",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Interceptors",
Java: 2,
"C++": 2,
Go: 1,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Memory Limit Controller",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Auto-update Partitions",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Blue/Green Cluster Migration",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 1,
"DotPulsar": 1,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
producer: [
{
Feature: "Batching",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Chunking",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Delayed message delivery",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 2,
},
{
Feature: "Compression",
Children: [
{
Feature: "LZ4",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "ZLIB",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "ZSTD",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "SNAPPY",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Schema",
Children: [
{
Feature: "Primitive",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 2,
},
{
Feature: "Avro",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 2,
},
{
Feature: "JSON",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 2,
},
{
Feature: "Protobuf",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Protobuf-native",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Native avro",
Java: 2,
"C++": 0,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "KeyValue",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 2,
},
{
Feature: "Autoschema",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Transaction",
Java: 2,
"C++": 0,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "End-to-end encryption",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Sync | Async Send",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Access Mode",
Children: [
{
Feature: "Shared",
Java: 2,
"C++": 2,
Go: 0,
Python: 2,
Nodejs: 2, // Verified: All 4 access modes
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Exclusive",
Java: 2,
"C++": 2,
Go: 0,
Python: 2,
Nodejs: 2, // Verified: All 4 access modes
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "WaitForExclusive",
Java: 2,
"C++": 2,
Go: 0,
Python: 2,
Nodejs: 2, // Verified: All 4 access modes
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "ExclusiveWithFencing",
Java: 2,
"C++": 2,
Go: 0,
Python: 2,
Nodejs: 2, // Verified: All 4 access modes
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Message Pooling",
Java: 2,
"C++": 2,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Blue/Green Migration Support",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 1,
"DotPulsar": 1,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
consumer: [
{
Feature: "ACK",
Children: [
{
Feature: "Batch-Index ACK",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "ACK Timeout",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "NACK",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "NACK Backoff",
Java: 2,
"C++": 1,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Redelivery Backoff",
Java: 2,
"C++": 1,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Batching",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Batch Receive Policy",
Java: 2,
"C++": 2,
Go: 0,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Chunking",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Seek",
Children: [
{
Feature: "by timestamp",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "by messageID",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Inclusive/Non-inclusive",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Subscription type",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Subscription mode",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Priority Level",
Java: 2,
"C++": 2,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "KeyShared Policy",
Children: [
{
Feature: "Sticky",
Java: 2,
"C++": 2,
Go: 0,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Auto",
Java: 2,
"C++": 2,
Go: 0,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Hash Range",
Java: 2,
"C++": 2,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Retry letter topic",
Java: 2,
"C++": 0,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Dead letter topic",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Compression",
Children: [
{
Feature: "LZ4",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "ZLIB",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "ZSTD",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "SNAPPY",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Compaction",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Schema",
Children: [
{
Feature: "Primitive",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Avro",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "JSON",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Protobuf",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Protobuf-native",
Java: 0,
"C++": 0,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Native avro",
Java: 0,
"C++": 0,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "KeyValue",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Autoschema",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "End-to-end encryption",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 2,
},
{
Feature: "Transaction",
Java: 2,
"C++": 0,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Blue/Green Migration Support",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 1,
"DotPulsar": 1,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
reader: [
{
Feature: "Batching",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "Chunking",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Seek",
Children: [
{
Feature: "by timestamp",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "by messageID",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Inclusive/Non-inclusive",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Compression",
Children: [
{
Feature: "LZ4",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 2,
REST: 0,
},
{
Feature: "ZLIB",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "ZSTD",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "SNAPPY",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Compaction",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Schema",
Children: [
{
Feature: "Primitive",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Avro",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 2,
"C#/DotPulsar": 2,
"DotPulsar": 2,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "JSON",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Protobuf",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 2,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Protobuf-native",
Java: 2,
"C++": 0,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Native avro",
Java: 2,
"C++": 0,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "KeyValue",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Autoschema",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "End-to-end encryption",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 2,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Blue/Green Migration Support",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 1,
"DotPulsar": 1,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
tableview: [
{
Feature: "Compaction",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Schema",
Children: [
{
Feature: "Primitive",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Avro",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "JSON",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Protobuf",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Protobuf-native",
Java: 0,
"C++": 0,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "Native avro",
Java: 0,
"C++": 0,
Go: 0,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
{
Feature: "KeyValue",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
{
Feature: "Autoschema",
Java: 2,
"C++": 2,
Go: 2,
Python: 0,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 2,
Websocket: 0,
REST: 0,
},
],
},
{
Feature: "Listener",
Java: 2,
"C++": 2,
Go: 2,
Python: 2,
Nodejs: 0,
Rust: 0,
"C#/DotPulsar": 0,
"DotPulsar": 0,
"NET(C#/F#/VB)": 0,
Websocket: 0,
REST: 0,
},
],
};