This is an automated email from the ASF dual-hosted git repository. tison pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
The following commit(s) were added to refs/heads/main by this push: new 2748cff80608 Broker features (#720) 2748cff80608 is described below commit 2748cff80608675070b9308bf485498e293cf82f Author: tison <wander4...@gmail.com> AuthorDate: Wed Nov 8 07:49:29 2023 +0800 Broker features (#720) Signed-off-by: tison <wander4...@gmail.com> --- data/broker-features.js | 261 ++++++++++++++++++++++++++++++++++++ src/components/Matrix/util.js | 8 +- src/pages/broker-feature-matrix.mdx | 37 +++++ 3 files changed, 302 insertions(+), 4 deletions(-) diff --git a/data/broker-features.js b/data/broker-features.js new file mode 100644 index 000000000000..67991b3b9c79 --- /dev/null +++ b/data/broker-features.js @@ -0,0 +1,261 @@ +export default [ + { + feature: "Produce / Exclusive", + experimentalSince: "2.11.0", + betaSince: "3.0.0", + stableSince: "3.0.0", + document: [ + { + "text": "Concept", + "link": "concepts-clients/#access-mode", + }, + { + "text": "PIP-161", + "link": "https://github.com/apache/pulsar/issues/15528", + } + ], + }, + { + feature: "Produce / Shared", + stableSince: "2.2.0", + document: [ + { + "text": "Concept", + "link": "concepts-clients/#access-mode", + }, + ], + }, + { + feature: "Subscription / Exclusive", + experimentalSince: "", + betaSince: "", + stableSince: "2.2.0", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#exclusive", + }, + ], + }, + { + feature: "Subscription / Failover", + experimentalSince: "", + betaSince: "", + stableSince: "2.2.0", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#failover", + }, + ], + }, + { + feature: "Subscription / Shared", + experimentalSince: "", + betaSince: "", + stableSince: "2.2.0", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#shared", + }, + ], + }, + { + feature: "Subscription / KeyShared", + experimentalSince: "2.4.0", + betaSince: "2.6.0", + stableSince: "2.9.5", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#key_shared", + }, + ], + }, + { + feature: "Messaging / Retry Letter Topic", + experimentalSince: "", + betaSince: "", + stableSince: "", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#retry-letter-topic", + } + ], + }, + { + feature: "Messaging / Dead Letter Topic", + experimentalSince: "2.2.0", + betaSince: "2.3.0", + stableSince: "2.4.0", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#dead-letter-topic", + } + ], + }, + { + feature: "Messaging / Delay Message Delivery", + experimentalSince: "2.4.0", + betaSince: "2.5.0", + stableSince: "2.6.0", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#delayed-message-delivery", + } + ], + }, + { + feature: "Messaging / Batching", + experimentalSince: "", + betaSince: "", + stableSince: "2.2.0", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#batching", + } + ], + }, + { + feature: "Messaging / Chunking", + experimentalSince: "", + betaSince: "", + stableSince: "", + document: [ + { + "text": "Concept", + "link": "concepts-messaging/#chunking", + } + ], + }, + { + feature: "Transaction / Failover Subscription", + experimentalSince: "", + betaSince: "", + stableSince: "", + document: [], + }, + { + feature: "Transaction / Shared Subscription", + experimentalSince: "2.8.0", + betaSince: "2.9.0", + stableSince: "2.9.3", + document: [], + }, + { + feature: "Transaction / Segmented Snapshot", + experimentalSince: "", + betaSince: "", + stableSince: "", + document: [], + }, + { + feature: "Schema / KeyValue", + experimentalSince: "", + betaSince: "", + stableSince: "2.6.0", + document: [ + { + "text": "Quickstart", + "link": "schema-get-started/#keyvalue" + } + ], + }, + { + feature: "Schema / Avro", + experimentalSince: "", + betaSince: "", + stableSince: "2.6.0", + document: [ + { + "text": "Quickstart", + "link": "schema-get-started/#avro" + } + ], + }, + { + feature: "Schema / JSON", + experimentalSince: "", + betaSince: "", + stableSince: "2.6.0", + document: [ + { + "text": "Quickstart", + "link": "schema-get-started/#json" + } + ], + }, + { + feature: "Functions / Java", + experimentalSince: "", + betaSince: "", + stableSince: "2.8.0", + document: [ + { + "text": "Concept", + "link": "functions-concepts", + }, + { + "text": "Quickstart", + "link": "functions-quickstart", + } + ], + }, + { + feature: "Functions / Golang", + experimentalSince: "", + betaSince: "", + stableSince: "", + document: [ + { + "text": "Concept", + "link": "functions-concepts", + } + ], + }, + { + feature: "Functions / Python", + experimentalSince: "", + betaSince: "", + stableSince: "", + document: [ + { + "text": "Concept", + "link": "functions-concepts", + } + ], + }, + { + feature: "Multitenancy", + experimentalSince: "", + betaSince: "", + stableSince: "2.2.0", + document: [ + { + "text": "Concept", + "link": "concepts-multi-tenancy", + } + ], + }, + { + feature: "Geo Replication", + experimentalSince: "", + betaSince: "", + stableSince: "2.2.0", + document: [ + { + "text": "Concept", + "link": "concepts-replication", + }, + { + "text": "Operation", + "link": "administration-geo", + } + ], + }, +] diff --git a/src/components/Matrix/util.js b/src/components/Matrix/util.js index 2522a10d4889..f7c52c2eb236 100644 --- a/src/components/Matrix/util.js +++ b/src/components/Matrix/util.js @@ -1,9 +1,10 @@ import React from "react"; import "react-base-table/styles.css"; import { Column } from "react-base-table"; -import { languages } from "../../../data/matrix.js"; +import { languages } from "@site/data/matrix"; + const _key = (language) => language.replace(".", "").replace(" ", ""); -export const genColomns = () => { +export const genColumns = () => { return ["Feature", "Sub"].concat(languages).map((language, index) => { return { key: _key(language), @@ -88,14 +89,13 @@ export const genCount = (values) => { export const getStyle = (name) => { if (name === "client") return { height: '45rem' }; if (name === "producer") return { height: '62rem' }; - // if (name === 'consumer') return "h-[1450px]"; if (name === "consumer") return { height: '60rem' }; if (name === "reader") return { height: '25rem' }; if (name === "tableview") return { height: '14rem' }; return { height: '45rem' }; }; -const columns = genColomns(); +const columns = genColumns(); export const fixedColumns = columns.map((column, columnIndex) => { let frozen; diff --git a/src/pages/broker-feature-matrix.mdx b/src/pages/broker-feature-matrix.mdx new file mode 100644 index 000000000000..fd732c287179 --- /dev/null +++ b/src/pages/broker-feature-matrix.mdx @@ -0,0 +1,37 @@ +--- +id: pulsar-broker-feature-matrix +title: Pulsar Broker Feature Matrix +--- + +# Pulsar Broker Feature Matrix + +import versions from "../../versions.json"; +import {docUrl} from "../utils"; +import brokerFeatures from "../../data/broker-features"; + +<table> + <thead> + <tr> + <th><b>Feature</b></th> + <th><b>Experimental Since</b></th> + <th><b>Beta Since</b></th> + <th><b>Stable Since</b></th> + <th><b>Document</b></th> + </tr> + </thead> + <tbody> + {brokerFeatures.map(data => ( + <tr key={data.feature}> + <td>{data.feature}</td> + <td>{data.experimentalSince}</td> + <td>{data.betaSince}</td> + <td>{data.stableSince}</td> + <td> + <ul>{data.document.map(doc => ( + <li><a href={doc.link.startsWith("https://") ? doc.link: docUrl(doc.link, "", versions[0])}>{doc.text}</a></li> + ))}</ul> + </td> + </tr> + ))} + </tbody> +</table>