diff --git a/client-feature-matrix/index.mdx b/client-feature-matrix/index.mdx index 819d7b3aeca2..2a47afdd4ce1 100644 --- a/client-feature-matrix/index.mdx +++ b/client-feature-matrix/index.mdx @@ -26,7 +26,15 @@ import { +### Reader + + + +### TableView + + +

-See details and full version [here](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit?usp=sharing) +For how to update this page, see [Pulsar Contribution Guide](/contribute/site-intro/#how-to-update-reference-pages). diff --git a/contribute/document-contribution.md b/contribute/document-contribution.md index cbe5d84fe22f..1a236015ffa7 100644 --- a/contribute/document-contribution.md +++ b/contribute/document-contribution.md @@ -31,15 +31,15 @@ This is available for 2.8.2 and later versions. If you want to update [Pulsar reference docs](pathname:///reference/), you should update the corresponding source files. -* Some reference docs are generated from code **automatically**. If you want to update the docs, you need to update the source code files. -* Some configuration docs are updated **manually** using markdown files. +- Some reference docs are generated from code **automatically**. If you want to update the docs, you need to update the source code files. +- Some configuration docs are updated **manually** using markdown files. ### Update configuration docs Docs for configs of bundled components are generated from command-line tools **automatically**: | Components | Update where ... | -|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Broker | [org.apache.pulsar.broker.ServiceConfiguration](https://github.com/apache/pulsar/blob/master/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java) | | WebSocket | [org.apache.pulsar.websocket.service.WebSocketProxyConfiguration](https://github.com/apache/pulsar/blob/master/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/service/WebSocketProxyConfiguration.java) | | Proxy | [org.apache.pulsar.proxy.server.ProxyConfiguration](https://github.com/apache/pulsar/blob/master/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyConfiguration.java) | @@ -52,7 +52,7 @@ Docs for configs of bundled components are generated from command-line tools **a Docs for configs of external components (whose source code is hosted outside the Pulsar repositories) are updated **manually**: | Components | Update where ... | -|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | BookKeeper | [reference-configuration-bookkeeper.md](https://github.com/apache/pulsar-site/blob/main/static/reference/next/config/reference-configuration-bookkeeper.md) | | Log4j | [reference-configuration-log4j.md](https://github.com/apache/pulsar-site/blob/main/static/reference/next/config/reference-configuration-log4j.md) | | Log4j shell | [reference-configuration-log4j-shell.md](https://github.com/apache/pulsar-site/blob/main/static/reference/next/config/reference-configuration-log4j-shell.md) | @@ -63,7 +63,7 @@ Docs for configs of external components (whose source code is hosted outside the Docs for bundled Java-based command-line tools are generated **automatically**: | Components | Update where… | -|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | pulsar | Different subcommands of [bin/pulsar](https://github.com/apache/pulsar/blob/master/bin/pulsar) are updated in different code files | | pulsar-admin | [Classes under the admin command-line folder](https://github.com/apache/pulsar/tree/master/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli) | | pulsar-client | [Classes under the client command-line folder](https://github.com/apache/pulsar/tree/master/pulsar-client-tools/src/main/java/org/apache/pulsar/client/cli) | @@ -72,7 +72,7 @@ Docs for bundled Java-based command-line tools are generated **automatically**: Docs for external command-line tools or bare scripts are updated **manually**: | Components | Update where… | -|---------------|--------------------------------------------------------------------------------------------------------------------------| +| ------------- | ------------------------------------------------------------------------------------------------------------------------ | | pulsar-shell | [pulsar-shell.md](https://github.com/apache/pulsar-site/blob/main/static/reference/next/pulsar-shell/pulsar-shell.md) | | pulsar-daemon | [pulsar-daemon.md](https://github.com/apache/pulsar-site/blob/main/static/reference/next/pulsar-daemon/pulsar-daemon.md) | | bookkeeper | [bookkeeper.md](https://github.com/apache/pulsar-site/blob/main/static/reference/next/bookkeeper/bookkeeper.md) | @@ -80,8 +80,9 @@ Docs for external command-line tools or bare scripts are updated **manually**: ## Update feature matrix Pulsar feature matrix introduces the features supported by language-specific clients and functions. It includes: -* [Client Feature Matrix](pathname:///client-feature-matrix) -* [Function Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=328808194) + +- [Client Feature Matrix](pathname:///client-feature-matrix) +- [Function Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=328808194) You need to update the feature matrix as soon as your related commits get merged. The workflow is illustrated as follows. @@ -93,7 +94,7 @@ You need to update the feature matrix as soon as your related commits get merged :::note -* [Client Feature Matrix](pathname:///client-feature-matrix) is in the transition phase from the spreadsheet to the webpage. For how to update it, see [How to update data-driven pages](site-intro.md#how-to-update-data-driven-pages). -* If you have problems in editing the spreadsheet of [Function Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=328808194), you can reach out to `dev@pulsar.apache.org`. +- For how to update the [Client Feature Matrix](pathname:///client-feature-matrix), see [How to update data-driven pages](site-intro.md#how-to-update-data-driven-pages). +- If you have problems in editing the spreadsheet of [Function Feature Matrix](https://docs.google.com/spreadsheets/d/1YHYTkIXR8-Ql103u-IMI18TXLlGStK8uJjDsOOA0T20/edit#gid=328808194), you can reach out to `dev@pulsar.apache.org`. -::: \ No newline at end of file +::: diff --git a/data/matrix.js b/data/matrix.js index a007b8733132..55054149e586 100644 --- a/data/matrix.js +++ b/data/matrix.js @@ -786,27 +786,97 @@ module.exports = { }, { Feature: "Seek", - Java: 2, - "C++": 2, - Go: 2, - Python: 1, - Nodejs: 1, - "C#/DotPulsar": 2, - Websocket: 0, - REST: 0, - "NET(C#/F#/VB)": 2, + 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", - Java: 2, - "C++": 2, - Go: 1, - Python: 2, - Nodejs: 2, - "C#/DotPulsar": 2, - Websocket: 1, - REST: 0, - "NET(C#/F#/VB)": 2, + 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", @@ -822,15 +892,104 @@ module.exports = { }, { Feature: "Schema", - Java: 2, - "C++": 1, - Go: 1, - Python: 1, - Nodejs: 1, - "C#/DotPulsar": 1, - Websocket: 0, - REST: 0, - "NET(C#/F#/VB)": 1, + 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", @@ -849,31 +1008,120 @@ module.exports = { { Feature: "Compaction", Java: 2, - "C++": 0, + "C++": 2, Go: 2, - Python: 2, + Python: 0, Nodejs: 0, "C#/DotPulsar": 0, Websocket: 0, REST: 0, - "NET(C#/F#/VB)": 0, + "NET(C#/F#/VB)": 2, }, { Feature: "Schema", - Java: 1, - "C++": 0, - Go: 1, - Python: 0, - Nodejs: 0, - "C#/DotPulsar": 0, - Websocket: 0, - REST: 0, - "NET(C#/F#/VB)": 1, + 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++": 0, + "C++": 2, Go: 2, Python: 0, Nodejs: 0,