A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | V | W | X | Y | Z | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | This file was created by Anonymitaet (Yu). It was last updated by Yu, momo-jun, RobertIndie, and Baodi on Apr 10, 2023. | |||||||||||||||||||||||||
2 | ✅ means supported. ❌ means not supported yet. 🔧 means WIP. | |||||||||||||||||||||||||
3 | ||||||||||||||||||||||||||
4 | Feature | Java | C++ | Go | Python | NodeJS | WebSocket | C# / DotPulsar | REST | .NET (C#/F#/VB) | ||||||||||||||||
5 | Code | Doc | Code | Doc | Code | Doc | Code | Doc | Code | Doc | Code | Doc | Code | Doc | Code | Doc | Code | |||||||||
6 | ||||||||||||||||||||||||||
7 | Client | TLS | Encryption | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ||||||||||
8 | Hostname verfication | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | |||||||||||
9 | Authentication | JWT | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | |||||||||||
10 | m-TLS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | |||||||||||
11 | Kerberos | ✅ | ✅ | ❌ | ❌ | |||||||||||||||||||||
12 | OAuth2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | |||||||||||||
13 | Athenz | ✅ | ✅ | ✅ | ❌ | |||||||||||||||||||||
14 | HTTP basic | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ||||||||||||||||
15 | Multi-Hosts Service URL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | |||||||||||||||||
16 | Proxy | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ||||||||||
17 | SNI Routing | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ||||||||||||||||||
18 | Statistics | ✅ | ❌ | ✅ | ||||||||||||||||||||||
19 | Transactions | ✅ | 🔧 ✅ Go 0.10 ≥ Pulsar 2.9.5 | ❌ | ✅ | |||||||||||||||||||||
22 | Memory Limits | ✅ | 🔧 | ✅ Go 0.10 Server-indenpendent | 🔧 | 🔧 | https://github.com/fsprojects/pulsar-client-dotnet/issues/169 | |||||||||||||||||||
23 | ServiceUrlProvider | ✅ | 🔧 | 🔧 | 🔧 | 🔧 | ❌ | |||||||||||||||||||
24 | Cluster-level auto failover | ✅ | 🔧 | 🔧 | 🔧 | 🔧 | 🔧 | ❌ | ||||||||||||||||||
25 | Auto release client useless connections | ✅ | ❌ | |||||||||||||||||||||||
26 | Notifications for faster topic discovery | ✅ | ❌ | |||||||||||||||||||||||
27 | ||||||||||||||||||||||||||
28 | Producer | Partitioned Topics | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ Support partitioned topics for producers | ✅ | ✅ | |||||||||||
29 | Batching | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||
30 | Chunking | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||
31 | Compression | LZ4 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||
32 | ZLIB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||
33 | ZSTD | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||
34 | SNAPPY | ✅ | ✅ | ✅ | 🔧 | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||
35 | Schema | Primitive | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | ✅ | ✅ | |||||||||||
36 | Avro | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | ✅ | ✅ | ||||||||||||
37 | Json | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | ✅ | |||||||||||||
38 | Protobuf | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||||
39 | protobuf-native | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||||
40 | Native Avro | ✅ | ✅ | ❌ | ||||||||||||||||||||||
41 | KeyValue | ✅ | ✅ | ✅ | ✅ | 🔧 | 🔧 | 🔧 | ✅ | ✅ | ✅ | ✅ | ||||||||||||||
42 | AutoSchema | ✅ | 🔧 | ✅ | ||||||||||||||||||||||
43 | SendMsgWithDifferentSchema | ✅ | ❌ | |||||||||||||||||||||||
44 | Multi-version Schema | ✅ | ✅ | ✅ | ||||||||||||||||||||||
45 | User-defined properties | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | |||||||||||||||
46 | Key-based batcher | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | |||||||||||||||||||
47 | Delayed/scheduled messages | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||
48 | Interceptors | ✅ | ✅ | ✅ C++ 3.2 Server independent | ✅ | 🔧 | 🔧 | ✅ | ||||||||||||||||||
49 | Message Router | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||
50 | End-to-end Encryption | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||||
51 | BlockIfQueueFull | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||||
52 | AccessMode | Shared | ✅ | ✅ | ✅ C++ 3.2 Pulsar 2.8.x | 🔧 | 🔧 | 🔧 | ❌ | |||||||||||||||||
53 | Exclusive | ✅ | ✅ | ✅ C++ 3.2 Pulsar 2.8.x | 🔧 | 🔧 | 🔧 | ❌ | ||||||||||||||||||
54 | ExclusiveWithFencing | ✅ | ✅ C++ 3.2 Pulsar 2.8.x | 🔧 | 🔧 | 🔧 | ❌ | |||||||||||||||||||
55 | WaitForExclusive | ✅ | ✅ | ✅ C++ 3.2 Pulsar 2.8.x | 🔧 | 🔧 | 🔧 | ❌ | ||||||||||||||||||
56 | Transactions | ✅ | 🔧 ✅ Go 0.10 Pulsar 2.9.5 | ✅ | ||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | Consumer | Partitioned Topics | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||
59 | Batching | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||
60 | Chunking | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||
61 | Compression | LZ4 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||
62 | ZLIB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||
63 | ZSTD | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||
64 | SNAPPY | ✅ | ✅ | ✅ | 🔧 | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||
65 | Compacted Topics | ✅ | ✅ | ✅ Pulsar 2.8.x | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||
66 | Multiple Topics | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||
67 | Regex Consumer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||||
68 | Seek | MessageID | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ https://pulsar.apache.org/api/python/2.10.0/pulsar.html#Consumer.seek | ✅ | ✅ | ||||||||||||||||
69 | Timestamp | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||
70 | Schema | Primitive | ✅ | ✅ | ✅ Pulsar 2.8.x | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | ✅ | ||||||||||||||
71 | Avro | ✅ | ✅ | ✅ Pulsar 2.8.x | ✅ | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | ✅ | ||||||||||||||
72 | Json | ✅ | ✅ | ✅ Pulsar 2.8.x | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | ||||||||||||||||
73 | Protobuf | ✅ | ✅ | ✅ Pulsar 2.8.x | ✅ | ✅ | ||||||||||||||||||||
74 | protobuf-native | ✅ | ||||||||||||||||||||||||
75 | Native Avro | ❌ | ||||||||||||||||||||||||
76 | KeyValue | ✅ | ✅ | ✅ Pulsar 2.8.x | ✅ | 🔧 | 🔧 | 🔧 | ✅ | ✅ | ✅ | |||||||||||||||
77 | AutoSchema | ✅ | ✅ | |||||||||||||||||||||||
78 | Multi-version Schema | ✅ | ✅ | |||||||||||||||||||||||
79 | User-defined properties | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ||||||||||||||||
80 | hasMessageAvailable | ✅ | ✅ | |||||||||||||||||||||||
81 | Subscription Type | Exclusive | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||
82 | Failover | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||
83 | Shared | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||
84 | Key_Shared | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||
85 | Subscription Mode | Durable | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||||||
86 | Non-durable | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||||||
87 | Interceptors | ✅ | ✅ | ✅ C++ 3.2 Server independent | ✅ | 🔧 | 🔧 | ✅ | ||||||||||||||||||
88 | Ack | Ack Individual | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||
89 | Ack Cumulative | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ https://pulsar.apache.org/docs/en/next/client-libraries-node/#consumer-operations | ✅ | ✅ | |||||||||||||||||
90 | Batch-Index Ack | ✅ | 🔧 | 🔧 | 🔧 | 🔧 | ✅ | |||||||||||||||||||
91 | Wait for response | ackReceiptEnabled | ✅ C++ 3.2 Pulsar 2.8.x setAckReceiptEnabled / isAckReceiptEnabled | |||||||||||||||||||||||
92 | Ack Timeout | ✅ | ✅ | ❌ (not supported) | ✅ | ✅ | ✅ | |||||||||||||||||||
93 | Negative Ack | Negative Ack | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||
94 | Negative acknowledgment backoff | ✅ | ✅ | 🔧 | ❌ | |||||||||||||||||||||
95 | Retry letter topic | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||||||
96 | Dead Letter Policy | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||||
97 | End-to-end Encryption | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||||||||||||
98 | SubscriptionInitialPosition | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||||||||||||||
99 | Batch Receiving Messages | ✅ | ✅ | ✅ | 🔧 | ✅ | 🔧 | ✅ | ||||||||||||||||||
100 | Transaction | 🔧 ✅ Go 0.10 Pulsar 2.9.5 | ||||||||||||||||||||||||
101 | ||||||||||||||||||||||||||
102 | Reader | Partitioned Topics | ✅ | ✅ | 🔧 | ✅ | ✅ | 🔧 | 🔧 | ✅ | ✅ | ✅ |