| 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, |
| }, |
| ], |
| }; |