data/matrix.js (1,134 lines of code) (raw):

module.exports = { languages: [ "Java", "C++", "Go", "Python", "Node.js", "C#/DotPulsar", ".NET (C#/F#/VB)", "Websocket", "REST", ], client: [ { Feature: "TLS encryption", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Authentication", Children: [ { Feature: "JWT", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "mTLS", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Kerberos", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, { Feature: "OAuth2", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Athenz", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, { Feature: "HTTP Basic", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, ], }, { Feature: "Transaction", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Cluster-level failover", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, { Feature: "Multi-host service", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Statistics", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Proxy", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Reconnection", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, ], producer: [ { Feature: "Batching", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Chunking", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Delayed message delivery", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 2, "NET(C#/F#/VB)": 2, }, { Feature: "Compression", Children: [ { Feature: "LZ4", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "ZLIB", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "ZSTD", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "SNAPPY", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "Schema", Children: [ { Feature: "Primitive", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 2, "NET(C#/F#/VB)": 2, }, { Feature: "Avro", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 2, "NET(C#/F#/VB)": 2, }, { Feature: "JSON", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 2, "NET(C#/F#/VB)": 2, }, { Feature: "Protobuf", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Protobuf-native", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Native avro", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, { Feature: "KeyValue", Java: 2, "C++": 2, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 2, REST: 2, "NET(C#/F#/VB)": 2, }, { Feature: "Autoschema", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "Transaction", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "End-to-end encryption", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Sync | Async Send", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, ], consumer: [ { Feature: "ACK", Children: [ { Feature: "Batch-Index ACK", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "ACK Timeout", Java: 2, "C++": 2, Go: 0, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "NACK", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "NACK Backoff", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, ], }, { Feature: "Batching", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Chunking", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Seek", Children: [ { Feature: "by timestamp", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "by messageID", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 0, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Inclusive/Non-inclusive", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 0, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "Subscription type", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Subscription mode", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Retry letter topic", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Dead letter topic", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Compression", Children: [ { Feature: "LZ4", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "ZLIB", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "ZSTD", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "SNAPPY", Java: 2, "C++": 2, Go: 0, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "Compaction", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Schema", Children: [ { Feature: "Primitive", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Avro", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "JSON", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Protobuf", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Protobuf-native", Java: 0, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Native avro", Java: 0, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, { Feature: "KeyValue", Java: 2, "C++": 2, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Autoschema", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "End-to-end encryption", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 2, "NET(C#/F#/VB)": 2, }, { Feature: "Transaction", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], reader: [ { Feature: "Batching", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Chunking", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Seek", Children: [ { Feature: "by timestamp", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "by messageID", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Inclusive/Non-inclusive", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "Compression", Children: [ { Feature: "LZ4", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 2, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "ZLIB", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "ZSTD", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "SNAPPY", Java: 2, "C++": 2, Go: 0, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "Compaction", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Schema", Children: [ { Feature: "Primitive", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 2, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Avro", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "JSON", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 2, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Protobuf", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Protobuf-native", Java: 2, "C++": 0, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Native avro", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, { Feature: "KeyValue", Java: 2, "C++": 2, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Autoschema", Java: 2, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "End-to-end encryption", Java: 2, "C++": 2, Go: 2, Python: 2, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], tableview: [ { Feature: "Compaction", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Schema", Children: [ { Feature: "Primitive", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Avro", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "JSON", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Protobuf", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Protobuf-native", Java: 0, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, { Feature: "Native avro", Java: 0, "C++": 0, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, { Feature: "KeyValue", Java: 2, "C++": 2, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, { Feature: "Autoschema", Java: 2, "C++": 2, Go: 0, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 2, }, ], }, { Feature: "Listener", Java: 2, "C++": 2, Go: 2, Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, "NET(C#/F#/VB)": 0, }, ], };