This is an automated email from the ASF dual-hosted git repository.
paksyd pushed a commit to branch asf-site-staging
in repository https://gitbox.apache.org/repos/asf/hbase-site.git
The following commit(s) were added to refs/heads/asf-site-staging by this push:
new fd05801a1c8 HBASE-29689 Update new website with latest improvements
fd05801a1c8 is described below
commit fd05801a1c8545fe712ae17d76ddab1b0d1afb51
Author: Dávid Paksy <[email protected]>
AuthorDate: Mon Nov 10 16:11:33 2025 +0100
HBASE-29689 Update new website with latest improvements
---
__spa-fallback.html | 10 +--
acid-semantics/index.html | 15 ++--
assets/acid-semantics-CYo_TaA9.js | 127 ++++++++++++++++++++++++++++++
assets/app-BzlgZNf1.css | 1 +
assets/code-of-conduct-CJPklNRV.js | 44 +++++++++++
assets/downloads-BRAGpK9n.js | 45 +++++++++++
assets/mailing-lists-doDVBa9G.js | 32 ++++++++
assets/manifest-339485e6.js | 1 +
assets/root-CPpn2GwT.js | 75 ++++++++++++++++++
assets/source-repository-D7Xzv9nd.js | 53 +++++++++++++
assets/sponsors-D__nLzUg.js | 35 +++++++++
assets/team-7qd-tD0H.js | 147 +++++++++++++++++++++++++++++++++++
code-of-conduct/index.html | 13 ++--
downloads/index.html | 13 ++--
fonts/inter-latin-wght-italic.woff2 | Bin 0 -> 51832 bytes
fonts/inter-latin-wght-normal.woff2 | Bin 0 -> 48256 bytes
index.html | 10 +--
mailing-lists/index.html | 13 ++--
news/index.html | 10 +--
other-resources/index.html | 10 +--
powered-by-hbase/index.html | 10 +--
source-repository/index.html | 13 ++--
sponsors/index.html | 13 ++--
team/index.html | 13 ++--
24 files changed, 635 insertions(+), 68 deletions(-)
diff --git a/__spa-fallback.html b/__spa-fallback.html
index a8f5c138ae5..0562736df64 100644
--- a/__spa-fallback.html
+++ b/__spa-fallback.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><link rel="preconnect"
href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin="anonymous"/><link
rel="modulepreload" href="/assets/manifest-a00575a7.js"/><link
rel="modulepreload" href="/assets/entry.client-D-YQWBLI.js"/><link
rel="modulepreload" href="/ass [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload" as="font"
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2"
crossorigin="anonymous"/><link rel="prefetch" as="font"
href="/fonts/inter-latin-wght-italic.woff2" type="font/woff2"
crossorigin="anonymous"/><link rel="modulepreload"
href="/assets/manifest-339485e6.js"/><link rel [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,16 +12,16 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
console.log(
"💿 Hey developer 👋. You can provide a way better UX than this
" +
"when your app is loading JS modules and/or running
`clientLoader` " +
"functions. Check out
https://reactrouter.com/start/framework/route-module#hydratefallback " +
"for more information."
);
- </script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":true};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThrough(new TextEncoderStream());</scr [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ </script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":true};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThrough(new TextEncoderStream());</scr [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
window.__reactRouterRouteModules = {"root":route0};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
\ No newline at end of file
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
\ No newline at end of file
diff --git a/acid-semantics/index.html b/acid-semantics/index.html
index 2d63a064581..a8bc3415794 100644
--- a/acid-semantics/index.html
+++ b/acid-semantics/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>ACID Semantics -
Apache HBase</title><meta name="description" content="Apache HBase ACID
properties and guarantees specification."/><link rel="preconnect"
href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin="anonymous"/><link
rel="modulepreload" h [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>ACID Semantics -
Apache HBase</title><meta name="description" content="Apache HBase ACID
properties and guarantees specification."/><link rel="preload" as="font"
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2"
crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-l
[...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight
text-balance md:text-6xl">ACID properties of HBase</h1>
<p class="mb-4 text-base leading-7">Apache HBase (TM) is not an ACID compliant
database. However, it does guarantee certain specific properties.</p>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight
md:text-4xl">Definitions</h2>
<p class="mb-4 text-base leading-7">For the sake of common vocabulary, we
define the following terms:</p>
@@ -114,7 +115,7 @@ an update is considered visible if any subsequent read will
see the update as ha
<li class="leading-7">Durability may be tuned to only flush data to disk on a
periodic basis</li>
</ul>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight
md:text-4xl">More Information</h2>
-<p class="mb-4 text-base leading-7">For more information, see the <a
class="text-primary underline-offset-4 hover:underline"
href="/acid-semantics/book.html#client" data-discover="true">client
architecture</a> or <a class="text-primary underline-offset-4 hover:underline"
href="/acid-semantics/book.html#datamodel" data-discover="true">data model</a>
sections in the Apache HBase Reference Guide.</p>
+<p class="mb-4 text-base leading-7">For more information, see the <a
class="text-primary underline-offset-4 hover:underline"
href="https://hbase.apache.org/book.html#client">client architecture</a> or <a
class="text-primary underline-offset-4 hover:underline"
href="https://hbase.apache.org/book.html#datamodel">data model</a> sections in
the Apache HBase Reference Guide.</p>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight
md:text-4xl">Footnotes</h2>
<p class="mb-4 text-base leading-7">[1] A consistent view is not guaranteed
intra-row scanning -- i.e. fetching a portion of a row in one RPC then going
back to fetch another portion of the row in a subsequent RPC. Intra-row
scanning happens when you set a limit on how many values to return per
Scan#next (See <a
href="http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/Scan.html#setBatch(int)"
target="_blank" rel="noopener noreferrer" class="text-primary inline
underline-of [...]
<p class="mb-4 text-base leading-7">[2] In the context of Apache HBase,
"durably on disk" implies an hflush() call on the transaction log.
This does not actually imply an fsync() to magnetic media, but rather just that
the data has been written to the OS cache on all replicas of the log. In the
case of a full datacenter power loss, it is possible that the edits are not
truly durable.</p>
@@ -133,11 +134,11 @@ an update is considered visible if any subsequent read
will see the update as ha
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/acid-semantics-uL_sMrFF.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/acid-semantics-CYo_TaA9.js";
window.__reactRouterRouteModules =
{"root":route0,"routes/acid-semantics":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/assets/acid-semantics-CYo_TaA9.js
b/assets/acid-semantics-CYo_TaA9.js
new file mode 100644
index 00000000000..4ead2d45471
--- /dev/null
+++ b/assets/acid-semantics-CYo_TaA9.js
@@ -0,0 +1,127 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as
n}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
a=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# ACID properties of HBase
+
+Apache HBase (TM) is not an ACID compliant database. However, it does
guarantee certain specific properties.
+
+## Definitions
+
+For the sake of common vocabulary, we define the following terms:
+
+**Atomicity**
+an operation is atomic if it either completes entirely or not at all
+
+**Consistency**
+all actions cause the table to transition from one valid state directly to
another (eg a row will not disappear during an update, etc)
+
+**Isolation**
+an operation is isolated if it appears to complete independently of any other
concurrent transaction
+
+**Durability**
+any update that reports "successful" to the client will not be lost
+
+**Visibility**
+an update is considered visible if any subsequent read will see the update as
having been committed
+
+The terms _must_ and _may_ are used as specified by RFC 2119. In short, the
word "must" implies that, if some case exists where the statement is not true,
it is a bug. The word "may" implies that, even if the guarantee is provided in
a current release, users should not rely on it.
+
+## APIs to consider
+
+- Read APIs
+ - get
+ - scan
+- Write APIs
+ - put
+ - batch put
+ - delete
+- Combination (read-modify-write) APIs
+ - incrementColumnValue
+ - checkAndPut
+
+## Guarantees Provided
+
+### Atomicity
+
+1. All mutations are atomic within a row. Any put will either wholly succeed
or wholly fail.[3]
+ 1. An operation that returns a "success" code has completely succeeded.
+ 2. An operation that returns a "failure" code has completely failed.
+ 3. An operation that times out may have succeeded and may have failed.
However, it will not have partially succeeded or failed.
+2. This is true even if the mutation crosses multiple column families within a
row.
+3. APIs that mutate several rows will _not_ be atomic across the multiple
rows. For example, a multiput that operates on rows 'a','b', and 'c' may return
having mutated some but not all of the rows. In such cases, these APIs will
return a list of success codes, each of which may be succeeded, failed, or
timed out as described above.
+4. The checkAndPut API happens atomically like the typical compareAndSet (CAS)
operation found in many hardware architectures.
+5. The order of mutations is seen to happen in a well-defined order for each
row, with no interleaving. For example, if one writer issues the mutation
"a=1,b=1,c=1" and another writer issues the mutation "a=2,b=2,c=2", the row
must either be "a=1,b=1,c=1" or "a=2,b=2,c=2" and must _not_ be something like
"a=1,b=2,c=1".
+ 1. Please note that this is not true _across rows_ for multirow batch
mutations.
+
+### Consistency and Isolation
+
+1. All rows returned via any access API will consist of a complete row that
existed at some point in the table's history.
+2. This is true across column families - i.e a get of a full row that occurs
concurrent with some mutations 1,2,3,4,5 will return a complete row that
existed at some point in time between mutation i and i+1 for some i between 1
and 5.
+3. The state of a row will only move forward through the history of edits to
it.
+
+#### Consistency of Scans
+
+A scan is **not** a consistent view of a table. Scans do **not** exhibit
_snapshot isolation_.
+
+Rather, scans have the following properties:
+
+1. Any row returned by the scan will be a consistent view (i.e. that version
of the complete row existed at some point in time) [1]
+2. A scan will always reflect a view of the data _at least as new as_ the
beginning of the scan. This satisfies the visibility guarantees enumerated
below.
+ 1. For example, if client A writes data X and then communicates via a side
channel to client B, any scans started by client B will contain data at least
as new as X.
+ 2. A scan _must_ reflect all mutations committed prior to the construction
of the scanner, and _may_ reflect some mutations committed subsequent to the
construction of the scanner.
+ 3. Scans must include _all_ data written prior to the scan (except in the
case where data is subsequently mutated, in which case it _may_ reflect the
mutation)
+
+Those familiar with relational databases will recognize this isolation level
as "read committed".
+
+Please note that the guarantees listed above regarding scanner consistency are
referring to "transaction commit time", not the "timestamp" field of each cell.
That is to say, a scanner started at time _t_ may see edits with a timestamp
value greater than _t_, if those edits were committed with a "forward dated"
timestamp before the scanner was constructed.
+
+### Visibility
+
+1. When a client receives a "success" response for any mutation, that mutation
is immediately visible to both that client and any client with whom it later
communicates through side channels. [3]
+2. A row must never exhibit so-called "time-travel" properties. That is to
say, if a series of mutations moves a row sequentially through a series of
states, any sequence of concurrent reads will return a subsequence of those
states.
+ 1. For example, if a row's cells are mutated using the
"incrementColumnValue" API, a client must never see the value of any cell
decrease.
+ 2. This is true regardless of which read API is used to read back the
mutation.
+3. Any version of a cell that has been returned to a read operation is
guaranteed to be durably stored.
+
+### Durability
+
+1. All visible data is also durable data. That is to say, a read will never
return data that has not been made durable on disk[2]
+2. Any operation that returns a "success" code (eg does not throw an
exception) will be made durable.[3]
+3. Any operation that returns a "failure" code will not be made durable
(subject to the Atomicity guarantees above)
+4. All reasonable failure scenarios will not affect any of the guarantees of
this document.
+
+### Tunability
+
+All of the above guarantees must be possible within Apache HBase. For users
who would like to trade off some guarantees for performance, HBase may offer
several tuning options. For example:
+
+- Visibility may be tuned on a per-read basis to allow stale reads or time
travel.
+- Durability may be tuned to only flush data to disk on a periodic basis
+
+## More Information
+
+For more information, see the [client
architecture](https://hbase.apache.org/book.html#client) or [data
model](https://hbase.apache.org/book.html#datamodel) sections in the Apache
HBase Reference Guide.
+
+## Footnotes
+
+[1] A consistent view is not guaranteed intra-row scanning -- i.e. fetching a
portion of a row in one RPC then going back to fetch another portion of the row
in a subsequent RPC. Intra-row scanning happens when you set a limit on how
many values to return per Scan#next (See
[Scan#setBatch(int)](http://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/Scan.html#setBatch(int))).
+
+[2] In the context of Apache HBase, "durably on disk" implies an hflush() call
on the transaction log. This does not actually imply an fsync() to magnetic
media, but rather just that the data has been written to the OS cache on all
replicas of the log. In the case of a full datacenter power loss, it is
possible that the edits are not truly durable.
+
+[3] Puts will either wholly succeed or wholly fail, provided that they are
actually sent to the RegionServer. If the writebuffer is used, Puts will not be
sent until the writebuffer is filled or it is explicitly flushed.
+
+`;function i(){return e.jsx(n,{children:a})}function h({}){return[{title:"ACID
Semantics - Apache HBase"},{name:"description",content:"Apache HBase ACID
properties and guarantees specification."}]}const u=t(function(){return
e.jsx(i,{})});export{u as default,h as meta};
diff --git a/assets/app-BzlgZNf1.css b/assets/app-BzlgZNf1.css
new file mode 100644
index 00000000000..9e4e43e450d
--- /dev/null
+++ b/assets/app-BzlgZNf1.css
@@ -0,0 +1 @@
+/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer
properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline)))
or ((-moz-orient:inline) and (not (color:rgb(from red r g
b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style
[...]
diff --git a/assets/code-of-conduct-CJPklNRV.js
b/assets/code-of-conduct-CJPklNRV.js
new file mode 100644
index 00000000000..d09a0cb9e02
--- /dev/null
+++ b/assets/code-of-conduct-CJPklNRV.js
@@ -0,0 +1,44 @@
+import{p as e,w as n}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as
t}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
i=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Code of Conduct
+
+## Policy
+
+We expect participants in discussions on the HBase project mailing lists, IRC
channels, and JIRA issues to abide by the Apache Software Foundation's [Code of
Conduct](http://apache.org/foundation/policies/conduct.html).
+
+If you feel there has been a violation of this code, please point out your
concerns publicly in a friendly and matter of fact manner. Nonverbal
communication is prone to misinterpretation and misunderstanding. Everyone has
bad days and sometimes says things they regret later. Someone else's
communication style may clash with yours, but the difference can be amicably
resolved. After pointing out your concerns please be generous upon receiving an
apology.
+
+Should there be repeated instances of code of conduct violations, or if there
is an obvious and severe violation, the HBase PMC may become involved. When
this happens the PMC will openly discuss the matter, most likely on the
dev@hbase mailing list, and will consider taking the following actions, in
order, if there is a continuing problem with an individual:
+
+1. A friendly off-list warning;
+2. A friendly public warning, if the communication at issue was on list,
otherwise another off-list warning;
+3. A three month suspension from the public mailing lists and possible
operator action in the IRC channels.
+4. A permanent ban from the public mailing lists, IRC channels, and project
JIRA.
+
+For flagrant violations requiring a firm response the PMC may opt to skip
early steps. No action will be taken before public discussion leading to
consensus or a successful majority vote.
+
+## Diversity Statement
+
+As a project and a community, we encourage you to participate in the HBase
project in whatever capacity suits you, whether it involves development,
documentation, answering questions on mailing lists, triaging issue and patch
review, managing releases, or any other way that you want to help. We
appreciate your contributions and the time you dedicate to the HBase project.
We strive to recognize the work of participants publicly. Please let us know if
we can improve in this area.
+
+We value diversity and strive to support participation by people with all
different backgrounds. Rich projects grow from groups with different points of
view and different backgrounds. We welcome your suggestions about how we can
welcome participation by people at all skill levels and with all aspects of the
project.
+
+If you can think of something we are doing that we shouldn't, or something
that we should do but aren't, please let us know. If you feel comfortable doing
so, use the public mailing lists. Otherwise, reach out to a PMC member or send
an email to [the private PMC mailing list](mailto:[email protected]).
+
+`;function o(){return e.jsx(t,{children:i})}function h({}){return[{title:"Code
of Conduct - Apache HBase"},{name:"description",content:"Code of Conduct and
Diversity Statement for the Apache HBase project community."}]}const
u=n(function(){return e.jsx(o,{})});export{u as default,h as meta};
diff --git a/assets/downloads-BRAGpK9n.js b/assets/downloads-BRAGpK9n.js
new file mode 100644
index 00000000000..7b04828004d
--- /dev/null
+++ b/assets/downloads-BRAGpK9n.js
@@ -0,0 +1,45 @@
+import{p as a,w as e}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as
s}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
o=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Downloads
+
+The below table lists mirrored release artifacts and their associated hashes
and signatures available ONLY at apache.org. The keys used to sign releases can
be found in our published [KEYS](https://downloads.apache.org/hbase/KEYS) file.
See [Verify The Integrity Of The
Files](https://www.apache.org/dyn/closer.cgi#verify) for how to verify your
mirrored downloads.
+
+## Releases
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes |
Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 3.0.0-beta-1 | 2024/01/14 | [3.0.0-beta-1 vs
2.0.0](https://downloads.apache.org/hbase/3.0.0-beta-1/api_compare_2.0.0_to_3.0.0-beta-1RC0.html)
| [Changes](https://downloads.apache.org/hbase/3.0.0-beta-1/CHANGES.md) |
[Release
Notes](https://downloads.apache.org/hbase/3.0.0-beta-1/RELEASENOTES.md) |
[src](https://www.apache.org/dyn/closer.lua/hbase/3.0.0-beta-1/hbase-3.0.0-beta-1-src.tar.gz)
([sha512](https://downloads.apache.org/hbase/3.0.0-beta-1/hbase-3.0.0-beta-1-src.tar.gz.sha512)
[...]
+| 2.6.3 | 2025/07/15 | [2.6.2 vs
2.6.3](https://downloads.apache.org/hbase/2.6.3/api_compare_2.6.2_to_2.6.3RC2.html)
| [Changes](https://downloads.apache.org/hbase/2.6.3/CHANGES.md) | [Release
Notes](https://downloads.apache.org/hbase/2.6.3/RELEASENOTES.md) |
[src](https://www.apache.org/dyn/closer.lua/hbase/2.6.3/hbase-2.6.3-src.tar.gz)
([sha512](https://downloads.apache.org/hbase/2.6.3/hbase-2.6.3-src.tar.gz.sha512)
[asc](https://downloads.apache.org/hbase/2.6.3/hbase-2.6.3-src.tar.gz. [...]
+| 2.5.12 | 2025/07/24 | [2.5.12 vs
2.5.11](https://downloads.apache.org/hbase/2.5.12/api_compare_2.5.11_to_2.5.12RC0.html)
| [Changes](https://downloads.apache.org/hbase/2.5.12/CHANGES.md) | [Release
Notes](https://downloads.apache.org/hbase/2.5.12/RELEASENOTES.md) |
[src](https://www.apache.org/dyn/closer.lua/hbase/2.5.12/hbase-2.5.12-src.tar.gz)
([sha512](https://downloads.apache.org/hbase/2.5.12/hbase-2.5.12-src.tar.gz.sha512)
[asc](https://downloads.apache.org/hbase/2.5.12/hbase-2.5. [...]
+
+## Connectors
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes |
Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 1.0.1 | 2023/10/27 | |
[Changes](https://github.com/apache/hbase-connectors/blob/rel/1.0.1/CHANGELOG.md)
| [Release
Notes](https://github.com/apache/hbase-connectors/blob/rel/1.0.1/RELEASENOTES.md)
|
[src](https://www.apache.org/dyn/closer.lua/hbase/hbase-connectors-1.0.1/hbase-connectors-1.0.1-src.tar.gz)
([sha512](https://downloads.apache.org/hbase/hbase-connectors-1.0.1/hbase-connectors-1.0.1-src.tar.gz.sha512)
[asc](https://downloads.apache.org/hbase/hbase-connectors-1.0.1/hbase-co [...]
+
+## HBase Operator Tools
+
+| Version | Release Date | Compatibility Report | Changes | Release Notes |
Download | Notices |
+|---------|--------------|---------------------|---------|---------------|----------|---------|
+| 1.2.0 | 2021/12/24 | |
[Changes](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/CHANGES.md)
| [Release
Notes](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/RELEASENOTES.md)
|
[src](https://www.apache.org/dyn/closer.lua/hbase/hbase-operator-tools-1.2.0/hbase-operator-tools-1.2.0-src.tar.gz)
([sha512](https://downloads.apache.org/hbase/hbase-operator-tools-1.2.0/hbase-operator-tools-1.2.0-src.tar.gz.sha512)
[asc](https://downloads.apache.org/hbase/hbase-ope [...]
+
+If you are looking for an old release that is not present here or on the
mirror, check the [Apache Archive](https://archive.apache.org/dist/hbase/).
+
+`;function t(){return a.jsx(s,{children:o})}function
p({}){return[{title:"Downloads - Apache
HBase"},{name:"description",content:"Download Apache HBase releases,
connectors, and operator tools with verification hashes and
signatures."}]}const i=e(function(){return a.jsx(t,{})});export{i as default,p
as meta};
diff --git a/assets/mailing-lists-doDVBa9G.js b/assets/mailing-lists-doDVBa9G.js
new file mode 100644
index 00000000000..f19d9c6255f
--- /dev/null
+++ b/assets/mailing-lists-doDVBa9G.js
@@ -0,0 +1,32 @@
+import{p as e,w as s}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as
i}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
a=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Apache HBase™ Mailing Lists
+
+For each list, links are provided to subscribe, unsubscribe, and view archives.
+
+| Name | Subscribe | Unsubscribe | Post | Archive | Other Archives |
+|------|-----------|-------------|------|---------|----------------|
+| User List | [Subscribe](mailto:[email protected]) |
[Unsubscribe](mailto:[email protected]) |
[Post](mailto:[email protected]) |
[lists.apache.org](https://lists.apache.org/[email protected]) |
[dir.gmane.org](https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user) |
+| Developer List | [Subscribe](mailto:[email protected]) |
[Unsubscribe](mailto:[email protected]) |
[Post](mailto:[email protected]) |
[lists.apache.org](https://lists.apache.org/[email protected]) |
[dir.gmane.org](https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel) |
+| Commits List | [Subscribe](mailto:[email protected]) |
[Unsubscribe](mailto:[email protected]) | - |
[lists.apache.org](https://lists.apache.org/[email protected])
| - |
+| Issues List | [Subscribe](mailto:[email protected]) |
[Unsubscribe](mailto:[email protected]) | - |
[lists.apache.org](https://lists.apache.org/[email protected])
| - |
+| Builds List | [Subscribe](mailto:[email protected]) |
[Unsubscribe](mailto:[email protected]) | - |
[lists.apache.org](https://lists.apache.org/[email protected])
| - |
+| User (ZH) List | [Subscribe](mailto:[email protected]) |
[Unsubscribe](mailto:[email protected]) |
[Post](mailto:[email protected]) |
[lists.apache.org](https://lists.apache.org/[email protected])
| - |
+
+`;function t(){return e.jsx(i,{children:a})}function
b({}){return[{title:"Mailing Lists - Apache
HBase"},{name:"description",content:"Subscribe to Apache HBase mailing lists
including user, developer, commits, issues, and builds lists."}]}const
u=s(function(){return e.jsx(t,{})});export{u as default,b as meta};
diff --git a/assets/manifest-339485e6.js b/assets/manifest-339485e6.js
new file mode 100644
index 00000000000..a2f9346ba65
--- /dev/null
+++ b/assets/manifest-339485e6.js
@@ -0,0 +1 @@
+window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-D-YQWBLI.js","imports":["/assets/chunk-OIYGIGL5-u-rPwZH2.js","/assets/index-CzkX0Xv9.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasErrorBoundary":true,"module":"/assets/root-CPpn2GwT.js","imports":["/assets/chunk-OIYGIGL5-u-rPwZH2.js","/assets/index-CzkX0Xv9.js","/assets/button-DZJtN4v4.js","/ass
[...]
\ No newline at end of file
diff --git a/assets/root-CPpn2GwT.js b/assets/root-CPpn2GwT.js
new file mode 100644
index 00000000000..62d3ed8b51f
--- /dev/null
+++ b/assets/root-CPpn2GwT.js
@@ -0,0 +1,75 @@
+import{p as s,L as I,a as c,R as he,q as Fo,w as $o,t as Bo,M as Wo,v as Ho,S
as zo,x as Uo,O as Vo,i as Go}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{c as
V,B as qn}from"./button-DZJtN4v4.js";import{a as Gt,R as
Ko}from"./index-CzkX0Xv9.js";import{c as
ht}from"./createLucideIcon-2kDJI1LL.js";import{E as
z}from"./external-link-BRT3Rnas.js";const
Yo="/assets/app-BzlgZNf1.css",We=[{label:"Overview",to:"/"},{label:"Downloads",to:"/downloads"},{label:"Mailing
Lists",to:"/mailing-lists"},{labe [...]
+ .`.concat(yi,` {
+ overflow: hidden `).concat(r,`;
+ padding-right: `).concat(l,"px ").concat(r,`;
+ }
+ body[`).concat(Ce,`] {
+ overflow: hidden `).concat(r,`;
+ overscroll-behavior: contain;
+ `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
+ padding-left: `.concat(o,`px;
+ padding-top: `).concat(a,`px;
+ padding-right: `).concat(i,`px;
+ margin-left:0;
+ margin-top:0;
+ margin-right: `).concat(l,"px ").concat(r,`;
+ `),n==="padding"&&"padding-right: ".concat(l,"px
").concat(r,";")].filter(Boolean).join(""),`
+ }
+
+ .`).concat(ot,` {
+ right: `).concat(l,"px ").concat(r,`;
+ }
+
+ .`).concat(st,` {
+ margin-right: `).concat(l,"px ").concat(r,`;
+ }
+
+ .`).concat(ot," .").concat(ot,` {
+ right: 0 `).concat(r,`;
+ }
+
+ .`).concat(st," .").concat(st,` {
+ margin-right: 0 `).concat(r,`;
+ }
+
+ body[`).concat(Ce,`] {
+ `).concat(Ci,": ").concat(l,`px;
+ }
+`)},$n=function(){var
e=parseInt(document.body.getAttribute(Ce)||"0",10);return
isFinite(e)?e:0},Wi=function(){c.useEffect(function(){return
document.body.setAttribute(Ce,($n()+1).toString()),function(){var
e=$n()-1;e<=0?document.body.removeAttribute(Ce):document.body.setAttribute(Ce,e.toString())}},[])},Hi=function(e){var
t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Wi();var
a=c.useMemo(function(){return Fi(o)},[o]);return
c.createElement($i,{styles:Bi(a,!t,o,n?"": [...]
+ .block-interactivity-`.concat(e,` {pointer-events: none;}
+ .allow-interactivity-`).concat(e,` {pointer-events: all;}
+`)},Ji=0,be=[];function Qi(e){var
t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(Ji++)[0],a=c.useState(Wr)[0],i=c.useRef(e);c.useEffect(function(){i.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var
m=bi([e.lockRef.current],(e.shards||[]).map(Hn),!0).filter(Boolean);return
m.forEach(function(w){return
w.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interacti
[...]
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Pe=ht("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Z=ht("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const yl=ht("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1
1-9-9Z",key:"a7tn18"}]]);/**
+ * @license lucide-react v0.454.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const
Cl=ht("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12
2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93
1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41
1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20
12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41
1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41
1.41",key:"1shlcs"}]]);function dn({...e}){return
s.jsx(fl,{"data-slot":"dropdown-menu",...e})}fu [...]
+ (function() {
+ const theme = localStorage.getItem('theme');
+ const root = document.documentElement;
+ root.classList.remove('light', 'dark');
+
+ if (theme && ['light', 'dark'].includes(theme)) {
+ root.classList.add(theme);
+ } else {
+ const systemTheme =
window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
+ root.classList.add(systemTheme);
+ localStorage.setItem('theme', systemTheme);
+ }
+ })();
+
`}}),s.jsx("noscript",{children:s.jsx("style",{children:".theme-toggle-wrapper
{ display: none !important;
}"})})]}),s.jsx("body",{className:"font-base",children:s.jsxs(Ml,{defaultTheme:"light",children:[s.jsx(Ol,{}),e,s.jsx(zo,{}),s.jsx(Uo,{}),s.jsx(Hl,{}),s.jsx(Zo,{})]})})]})}const
ql=$o(function(){return s.jsx(Vo,{})}),Zl=Bo(function({error:t}){let
n="Oops!",r="An unexpected error occurred.",o;return
Go(t)&&(n=t.status===404?"404":"Error",r=t.status===404?"The requested pa [...]
diff --git a/assets/source-repository-D7Xzv9nd.js
b/assets/source-repository-D7Xzv9nd.js
new file mode 100644
index 00000000000..440a394a718
--- /dev/null
+++ b/assets/source-repository-D7Xzv9nd.js
@@ -0,0 +1,53 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as
n}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
o=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Overview
+
+Apache HBase™ uses [Git](https://git-scm.com/) to manage its source code.
Instructions on Git use can be found at
[https://git-scm.com/documentation](https://git-scm.com/documentation).
+
+### Web Browser Access
+
+The following is a link to a browsable version of the source repository:
+
+\`\`\`
+https://gitbox.apache.org/repos/asf?p=hbase.git
+\`\`\`
+
+[Browse the repository](https://gitbox.apache.org/repos/asf?p=hbase.git)
+
+### Anonymous Access
+
+The source can be checked out anonymously from Git with this command (See
[https://git-scm.com/docs/git-clone](https://git-scm.com/docs/git-clone)):
+
+\`\`\`bash
+$ git clone git://gitbox.apache.org/repos/asf/hbase.git
+\`\`\`
+
+### Developer Access
+
+Only project developers can access the Git tree via this method (See
[https://git-scm.com/docs/git-clone](https://git-scm.com/docs/git-clone)).
+
+\`\`\`bash
+$ git clone https://gitbox.apache.org/repos/asf/hbase.git
+\`\`\`
+
+### Access from Behind a Firewall
+
+Refer to the documentation of the SCM used for more information about access
behind a firewall.
+
+`;function s(){return e.jsx(n,{children:o})}function
p({}){return[{title:"Source Repository - Apache
HBase"},{name:"description",content:"Access the Apache HBase source code
repository."}]}const m=t(function(){return e.jsx(s,{})});export{m as default,p
as meta};
diff --git a/assets/sponsors-D__nLzUg.js b/assets/sponsors-D__nLzUg.js
new file mode 100644
index 00000000000..608880c2eb2
--- /dev/null
+++ b/assets/sponsors-D__nLzUg.js
@@ -0,0 +1,35 @@
+import{p as e,w as o}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as
t}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
n=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# Sponsors
+
+First off, thanks to [all who
sponsor](http://www.apache.org/foundation/thanks.html) our parent, the Apache
Software Foundation.
+
+The below companies have been gracious enough to provide their commercial tool
offerings free of charge to the Apache HBase™ project.
+
+- The crew at [ej-technologies](http://www.ej-technologies.com/) have been let
us use
[JProfiler](http://www.ej-technologies.com/products/jprofiler/overview.html)
for years now.
+- The lads at [headway software](http://headwaysoftware.com/) have given us a
license for
[Restructure101](http://headwaysoftware.com/products/?code=Restructure101) so
we can untangle our interdependency mess.
+- [YourKit](http://www.yourkit.com) allows us to use their [Java
Profiler](http://www.yourkit.com/overview/index.jsp).
+- Some of us use [IntelliJ IDEA](http://www.jetbrains.com/idea) thanks to
[JetBrains](http://www.jetbrains.com/).
+- Thank you to Boris at [Vector Portal](http://www.vectorportal.com/) for
granting us a license on the
[image](http://www.vectorportal.com/subcategory/205/KILLER-WHALE-FREE-VECTOR.eps/ifile/9136/detailtest.asp)
on which our logo is based.
+
+## Sponsoring the Apache Software Foundation
+
+To contribute to the Apache Software Foundation, a good idea in our opinion,
see the [ASF Sponsorship](http://www.apache.org/foundation/sponsorship.html)
page.
+
+`;function r(){return e.jsx(t,{children:n})}function
p({}){return[{title:"Sponsors - Apache
HBase"},{name:"description",content:"Companies and organizations that sponsor
the Apache HBase project with tools and resources."}]}const
w=o(function(){return e.jsx(r,{})});export{w as default,p as meta};
diff --git a/assets/team-7qd-tD0H.js b/assets/team-7qd-tD0H.js
new file mode 100644
index 00000000000..c5a6a36274a
--- /dev/null
+++ b/assets/team-7qd-tD0H.js
@@ -0,0 +1,147 @@
+import{p as e,w as t}from"./chunk-OIYGIGL5-u-rPwZH2.js";import{M as
o}from"./markdown-layout-DRQ1YBds.js";import"./external-link-BRT3Rnas.js";import"./createLucideIcon-2kDJI1LL.js";const
c=`<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+# The Team
+
+A successful project requires many people to play many roles. Some members
write code or documentation, while others are valuable as testers, submitting
patches and suggestions.
+
+The team is comprised of Members and Contributors. Members have direct access
to the source of a project and actively evolve the code-base. Contributors
improve the project through submission of patches and suggestions to the
Members. The number of Contributors to the project is unbounded. Get involved
today. All contributions to the project are greatly appreciated.
+
+## Members
+
+These are the developers with commit privileges that have directly contributed
to the project in one way or another.
+
+| Image | Id | Name | Email | Time Zone |
+|-------|----|----|-------|-----------|
+|

| achouhan | Abhishek Singh Chouhan |
[[email protected]](mailto:[email protected]) | +5 |
+|

| acube123 | Amitanand S. Aiyer |
[[email protected]](mailto:[email protected]) | -8 |
+|

| allan163 | Allan Yang | [[email protected]](mailto:[email protected]) |
+8 |
+|

| andor | Andor Molnar | [[email protected]](mailto:[email protected]) | -5 |
+|

| appy | Apekshit Sharma | [[email protected]](mailto:[email protected]) | -8 |
+|

| anastasia | Anastasia Braginsky |
[[email protected]](mailto:[email protected]) | +2 |
+|

| apurtell | Andrew Purtell | [[email protected]](mailto:[email protected])
| -8 |
+|

| anoopsamjohn | Anoop Sam John |
[[email protected]](mailto:[email protected]) | +5 |
+|

| antonov | Mikhail Antonov | [[email protected]](mailto:[email protected]) |
-8 |
+|

| ashishsinghi | Ashish Singhi |
[[email protected]](mailto:[email protected]) | +5 |
+|

| ashu | Ashu Pachauri | [[email protected]](mailto:[email protected]) | +5 |
+|

| bharathv | Bharath Vissapragada |
[[email protected]](mailto:[email protected]) | -8 |
+|

| binlijin | Lijin Bin | [[email protected]](mailto:[email protected]) | +8
|
+|

| brfrn169 | Toshihiro Suzuki |
[[email protected]](mailto:[email protected]) | +9 |
+|

| busbey | Sean Busbey | [[email protected]](mailto:[email protected]) | -6 |
+|

| chenglei | Cheng Lei | [[email protected]](mailto:[email protected]) | +8
|
+|

| chenheng | Heng Chen | [[email protected]](mailto:[email protected]) | +8
|
+|

| chia7712 | Chia-Ping Tsai | [[email protected]](mailto:[email protected])
| +8 |
+|

| ddas | Devaraj Das | [[email protected]](mailto:[email protected]) | -8 |
+|

| dimaspivak | Dima Spivak |
[[email protected]](mailto:[email protected]) | -8 |
+|

| dmeil | Doug Meil | [[email protected]](mailto:[email protected]) | -5 |
+|

| eclark | Elliott Clark | [[email protected]](mailto:[email protected]) | -8 |
+|

| elserj | Josh Elser | [[email protected]](mailto:[email protected]) | -5 |
+|

| enis | Enis Soztutar | [[email protected]](mailto:[email protected]) | -8 |
+|

| eshcar | Eshcar Hillel | [[email protected]](mailto:[email protected]) | +2 |
+|

| fenghh | Honghua Feng | [[email protected]](mailto:[email protected]) | +8 |
+|

| garyh | Gary Helmling | [[email protected]](mailto:[email protected]) | -8 |
+|

| gchanan | Gregory Chanan | [[email protected]](mailto:[email protected]) |
-8 |
+|

| gjacoby | Geoffrey Jacoby | [[email protected]](mailto:[email protected]) |
-5 |
+|

| gxcheng | Guangxu Cheng | [[email protected]](mailto:[email protected]) |
+8 |
+|

| haxiaolin | Xiaolin Ha | [[email protected]](mailto:[email protected])
| +8 |
+|

| huaxiangsun | Huaxiang Sun |
[[email protected]](mailto:[email protected]) | -8 |
+|

| huiruan | Hui Ruan | [[email protected]](mailto:[email protected]) | +8 |
+|

| jdcryans | Jean-Daniel Cryans |
[[email protected]](mailto:[email protected]) | -8 |
+|

| jeffreyz | Jeffrey Zhong | [[email protected]](mailto:[email protected])
| -8 |
+|

| jerryjch | Jing Chen (Jerry) He |
[[email protected]](mailto:[email protected]) | -8 |
+|

| jyates | Jesse Yates | [[email protected]](mailto:[email protected]) | -8 |
+|

| jgray | Jonathan Gray | [[email protected]](mailto:[email protected]) | -8 |
+|

| jingchengdu | Jingcheng Du |
[[email protected]](mailto:[email protected]) | +8 |
+|

| esteban | Esteban Gutierrez | [[email protected]](mailto:[email protected])
| -8 |
+|

| janh | Jan Hentschel | [[email protected]](mailto:[email protected]) | +1 |
+|

| jmhsieh | Jonathan Hsieh | [[email protected]](mailto:[email protected]) |
-8 |
+|

| junegunn | Junegunn Choi | [[email protected]](mailto:[email protected])
| +9 |
+|

| jxiang | Jimmy Xiang | [[email protected]](mailto:[email protected]) | -8 |
+|

| kannan | Kannan Muthukkaruppan | [[email protected]](mailto:[email protected]) | -8 |
+|

| karthik | Karthik Ranganathan |
[[email protected]](mailto:[email protected]) | -8 |
+|

| larsfrancke | Lars Francke |
[[email protected]](mailto:[email protected]) | Europe/Berlin |
+|

| larsgeorge | Lars George |
[[email protected]](mailto:[email protected]) | +1 |
+|

| larsh | Lars Hofhansl | [[email protected]](mailto:[email protected]) | -8 |
+|

| liangxie | Liang Xie | [[email protected]](mailto:[email protected]) | +8
|
+|

| liushaohui | Shaohui Liu |
[[email protected]](mailto:[email protected]) | +8 |
+|

| liyin | Liyin Tang | [[email protected]](mailto:[email protected]) | -8 |
+|

| liyu | Yu Li | [[email protected]](mailto:[email protected]) | +8 |
+|

| lupeng | Peng Lu | [[email protected]](mailto:[email protected]) | +8 |
+|

| mbautin | Mikhail Bautin | [[email protected]](mailto:[email protected]) |
-8 |
+|

| mbertozzi | Matteo Bertozzi |
[[email protected]](mailto:[email protected]) | 0 |
+|

| mdrob | Mike Drob | [[email protected]](mailto:[email protected]) | -5 |
+|

| meszibalu | Balazs Meszaros |
[[email protected]](mailto:[email protected]) | +1 |
+|

| misty | Misty Stanley-Jones | [[email protected]](mailto:[email protected]) |
-8 |
+|

| ndimiduk | Nick Dimiduk | [[email protected]](mailto:[email protected]) |
-8 |
+|

| nihaljain | Nihal Jain | [[email protected]](mailto:[email protected])
| +5 |
+|

| niuyulin | Yulin Niu | [[email protected]](mailto:[email protected]) | +8
|
+|

| nkeywal | Nicolas Liochon | [[email protected]](mailto:[email protected]) |
+1 |
+|

| nspiegelberg | Nicolas Spiegelberg |
[[email protected]](mailto:[email protected]) | -8 |
+|

| octo47 | Andrey Stepachev | [[email protected]](mailto:[email protected]) | 0 |
+|

| openinx | Zheng Hu | [[email protected]](mailto:[email protected]) | +8 |
+|

| pankajkumar | Pankaj Kumar |
[[email protected]](mailto:[email protected]) | +5 |
+|

| psomogyi | Peter Somogyi | [[email protected]](mailto:[email protected])
| +1 |
+|

| rajeshbabu | Rajeshbabu Chintaguntla |
[[email protected]](mailto:[email protected]) | +5 |
+|

| ramkrishna | Ramkrishna S Vasudevan |
[[email protected]](mailto:[email protected]) | +5 |
+|

| rawson | Ryan Rawson | [[email protected]](mailto:[email protected]) | -8 |
+|

| reidchan | Reid Chan | [[email protected]](mailto:[email protected]) | +8
|
+|

| shahrs87 | Rushabh Shah | [[email protected]](mailto:[email protected]) |
-8 |
+|

| sakthi | Sakthi Vel | [[email protected]](mailto:[email protected]) | -8 |
+|

| rmattingly | Ray Mattingly |
[[email protected]](mailto:[email protected]) | -5 |
+|

| sershe | Sergey Shelukhin | [[email protected]](mailto:[email protected]) |
-8 |
+|

| ssrungarapu | Srikanth Srungarapu |
[[email protected]](mailto:[email protected]) | -8 |
+|

| stack | Michael Stack | [[email protected]](mailto:[email protected]) | -8 |
+|

| stoty | Istvan Toth | [[email protected]](mailto:[email protected]) | +1 |
+|

| syuanjiang | Stephen Yuan Jiang |
[[email protected]](mailto:[email protected]) | -8 |
+|

| taklwu | Tak-Lon (Stephen) Wu | [[email protected]](mailto:[email protected])
| -8 |
+|

| tedyu | Ted Yu | [[email protected]](mailto:[email protected]) | -8 |
+|

| tianhang | Tianhang Tang | [[email protected]](mailto:[email protected])
| +8 |
+|

| tianjy | - | [[email protected]](mailto:[email protected]) | +8 |
+|

| todd | Todd Lipcon | [[email protected]](mailto:[email protected]) | -8 |
+|

| toffer | Francis Liu | [[email protected]](mailto:[email protected]) | -8 |
+|

| vikasv | Vikas Vishwakarma | [[email protected]](mailto:[email protected]) |
+5 |
+|

| virag | Virag Kothari | [[email protected]](mailto:[email protected]) |
-8 |
+|

| vjasani | Viraj Jasani | [[email protected]](mailto:[email protected]) | +5
|
+|

| water | Xiang Li | [[email protected]](mailto:[email protected]) | +8 |
+|

| wchevreuil | Wellington Chevreuil |
[[email protected]](mailto:[email protected]) | 0 |
+|

| weichiu | Wei-Chiu Chuang | [[email protected]](mailto:[email protected]) |
-8 |
+|

| xucang | Xu Cang | [[email protected]](mailto:[email protected]) | -8 |
+|

| yangzhe1991 | Phil Yang |
[[email protected]](mailto:[email protected]) | +8 |
+|

| zghao | Guanghao Zhang | [[email protected]](mailto:[email protected]) | +8 |
+|

| zhangduo | Duo Zhang | [[email protected]](mailto:[email protected]) | +8
|
+|

| zhaobaiqiang | Baiqiang Zhao |
[[email protected]](mailto:[email protected]) | +8 |
+|

| zjushch | Chunhui Shen | [[email protected]](mailto:[email protected]) | +8
|
+|

| churro | Rahul Gidwani | [[email protected]](mailto:[email protected]) | -8 |
+|

| yiliang | Yi Liang | [[email protected]](mailto:[email protected]) | -8 |
+|

| zyork | Zach York | [[email protected]](mailto:[email protected]) | -8 |
+|

| meiyi | Yi Mei | [[email protected]](mailto:[email protected]) | +8 |
+|

| wangzheng | Zheng (bsglz) Wang |
[[email protected]](mailto:[email protected]) | +8 |
+|

| sunxin | Xin Sun | [[email protected]](mailto:[email protected]) | +8 |
+|

| huangzhuoyue | Zhuoyue Huang |
[[email protected]](mailto:[email protected]) | +8 |
+|

| xiaoyt | Yutong Xiao | [[email protected]](mailto:[email protected]) | +8 |
+|

| bbeaudreault | Bryan Beaudreault |
[[email protected]](mailto:[email protected]) | -5 |
+|

| heliangjun | Liangjun He |
[[email protected]](mailto:[email protected]) | +8 |
+|

| cconnell | Charles Connell |
[[email protected]](mailto:[email protected]) | -5 |
+|

| chandrakambham | Chandra Kambham |
[[email protected]](mailto:[email protected]) | +5 |
+|

| paksyd | Dávid Paksy | [[email protected]](mailto:[email protected]) | +1 |
+
+## Contributors
+
+Apache HBase™ does not maintain a list of contributors.
+
+`;function h(){return
e.jsx(o,{components:{img:({src:a,alt:r})=>e.jsx("img",{src:a||"",alt:r||"",loading:"lazy",className:"my-0
h-10 w-10 rounded-full"}),td:({children:a})=>e.jsx("td",{className:"px-4 py-3
align-middle",children:a})},children:c})}function s({}){return[{title:"Team -
Apache HBase"},{name:"description",content:"Meet the Apache HBase project team
members and contributors who develop and maintain HBase."}]}const
d=t(function(){return e.jsx(h,{})});export{d as default,s as meta};
diff --git a/code-of-conduct/index.html b/code-of-conduct/index.html
index 6ea637028ba..9373df8618a 100644
--- a/code-of-conduct/index.html
+++ b/code-of-conduct/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Code of Conduct -
Apache HBase</title><meta name="description" content="Code of Conduct and
Diversity Statement for the Apache HBase project community."/><link
rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin="anonymous"/><link [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Code of Conduct -
Apache HBase</title><meta name="description" content="Code of Conduct and
Diversity Statement for the Apache HBase project community."/><link
rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2"
type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight
text-balance md:text-6xl">Code of Conduct</h1>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight
md:text-4xl">Policy</h2>
<p class="mb-4 text-base leading-7">We expect participants in discussions on
the HBase project mailing lists, IRC channels, and JIRA issues to abide by the
Apache Software Foundation's <a
href="http://apache.org/foundation/policies/conduct.html" target="_blank"
rel="noopener noreferrer" class="text-primary inline underline-offset-4
hover:underline">Code of Conduct<!-- --> <svg
xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
fill="none" stroke="currentCo [...]
<p class="mb-4 text-base leading-7">If you feel there has been a violation of
this code, please point out your concerns publicly in a friendly and matter of
fact manner. Nonverbal communication is prone to misinterpretation and
misunderstanding. Everyone has bad days and sometimes says things they regret
later. Someone else's communication style may clash with yours, but the
difference can be amicably resolved. After pointing out your concerns please be
generous upon receiving an ap [...]
@@ -42,11 +43,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/code-of-conduct-rMkicXc0.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/code-of-conduct-CJPklNRV.js";
window.__reactRouterRouteModules =
{"root":route0,"routes/code-of-conduct":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/downloads/index.html b/downloads/index.html
index 15ac021e46d..ca9045f5bd3 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Downloads - Apache
HBase</title><meta name="description" content="Download Apache HBase releases,
connectors, and operator tools with verification hashes and signatures."/><link
rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin= [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Downloads - Apache
HBase</title><meta name="description" content="Download Apache HBase releases,
connectors, and operator tools with verification hashes and signatures."/><link
rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2"
type="font/woff2" crossorigin="anonymous"/><link rel=" [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight
text-balance md:text-6xl">Downloads</h1>
<p class="mb-4 text-base leading-7">The below table lists mirrored release
artifacts and their associated hashes and signatures available ONLY at
apache.org. The keys used to sign releases can be found in our published <a
href="https://downloads.apache.org/hbase/KEYS" target="_blank" rel="noopener
noreferrer" class="text-primary inline underline-offset-4
hover:underline">KEYS<!-- --> <svg xmlns="http://www.w3.org/2000/svg"
width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="cu [...]
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight
md:text-4xl">Releases</h2>
@@ -122,11 +123,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/downloads-BrfNBQbM.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/downloads-BRAGpK9n.js";
window.__reactRouterRouteModules = {"root":route0,"routes/downloads":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/fonts/inter-latin-wght-italic.woff2
b/fonts/inter-latin-wght-italic.woff2
new file mode 100644
index 00000000000..2f06c65192b
Binary files /dev/null and b/fonts/inter-latin-wght-italic.woff2 differ
diff --git a/fonts/inter-latin-wght-normal.woff2
b/fonts/inter-latin-wght-normal.woff2
new file mode 100644
index 00000000000..d15208de03c
Binary files /dev/null and b/fonts/inter-latin-wght-normal.woff2 differ
diff --git a/index.html b/index.html
index b37c6a7cda8..b1e13619056 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload"
as="image" href="/images/large-logo.svg"/><link rel="preload" as="image"
href="/images/dark-theme-large-logo.svg"/><title>Apache HBase</title><meta
name="description" content="Apache HBase® is the Hadoop database, a
distributed, scalable, big data store."/><link rel="preconnect" href="h [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload"
as="image" href="/images/large-logo.svg"/><link rel="preload" as="image"
href="/images/dark-theme-large-logo.svg"/><title>Apache HBase</title><meta
name="description" content="Apache HBase® is the Hadoop database, a
distributed, scalable, big data store."/><link rel="preload" as="font" [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,7 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
import * as route1 from "/assets/home-CxfyEQdh.js";
window.__reactRouterRouteModules = {"root":route0,"routes/home":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/mailing-lists/index.html b/mailing-lists/index.html
index 20081bd55c6..aae88457a89 100644
--- a/mailing-lists/index.html
+++ b/mailing-lists/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Mailing Lists - Apache
HBase</title><meta name="description" content="Subscribe to Apache HBase
mailing lists including user, developer, commits, issues, and builds
lists."/><link rel="preconnect" href="https://fonts.googleapis.com"/><link
rel="preconnect" href="https://fonts.gstatic.com" crossorigi [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Mailing Lists - Apache
HBase</title><meta name="description" content="Subscribe to Apache HBase
mailing lists including user, developer, commits, issues, and builds
lists."/><link rel="preload" as="font"
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2"
crossorigin="anonymous"/><link rel [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight
text-balance md:text-6xl">Apache HBase™ Mailing Lists</h1>
<p class="mb-4 text-base leading-7">For each list, links are provided to
subscribe, unsubscribe, and view archives.</p>
@@ -90,11 +91,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/mailing-lists-BQgZQ_zQ.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/mailing-lists-doDVBa9G.js";
window.__reactRouterRouteModules =
{"root":route0,"routes/mailing-lists":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/news/index.html b/news/index.html
index ab15765558d..825b2d8b149 100644
--- a/news/index.html
+++ b/news/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload"
as="image"
href="https://www.apache.org/events/current-event-234x60.png"/><title>News -
Apache HBase</title><meta name="description" content="Latest news, events, and
releases for Apache HBase."/><link rel="preconnect"
href="https://fonts.googleapis.com"/><link rel="preconnect" href="ht [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><link rel="preload"
as="image"
href="https://www.apache.org/events/current-event-234x60.png"/><title>News -
Apache HBase</title><meta name="description" content="Latest news, events, and
releases for Apache HBase."/><link rel="preload" as="font"
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2" [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,7 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
import * as route1 from "/assets/news-BaUFuyKX.js";
window.__reactRouterRouteModules = {"root":route0,"routes/news":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/other-resources/index.html b/other-resources/index.html
index 3c3ef5c535d..2361eea0399 100644
--- a/other-resources/index.html
+++ b/other-resources/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Other Resources -
Apache HBase</title><meta name="description" content="Books and other learning
resources about Apache HBase."/><link rel="preconnect"
href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin="anonymous"/><link
rel="modulepreload" href [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Other Resources -
Apache HBase</title><meta name="description" content="Books and other learning
resources about Apache HBase."/><link rel="preload" as="font"
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2"
crossorigin="anonymous"/><link rel="prefetch" as="font" href="/fonts/inter-lati
[...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,7 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
import * as route1 from "/assets/other-resources-BG0U4qkL.js";
window.__reactRouterRouteModules =
{"root":route0,"routes/other-resources":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/powered-by-hbase/index.html b/powered-by-hbase/index.html
index 24d7bc4aa15..c8f3f2ba280 100644
--- a/powered-by-hbase/index.html
+++ b/powered-by-hbase/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Powered by HBase -
Apache HBase</title><meta name="description" content="Companies and
organizations using Apache HBase in production for their data storage and
processing needs."/><link rel="preconnect"
href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" cro [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Powered by HBase -
Apache HBase</title><meta name="description" content="Companies and
organizations using Apache HBase in production for their data storage and
processing needs."/><link rel="preload" as="font"
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2"
crossorigin="anonymous"/><l [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,7 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
@@ -27,11 +27,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
import * as route1 from "/assets/powered-by-hbase-D2XtlmVH.js";
window.__reactRouterRouteModules =
{"root":route0,"routes/powered-by-hbase":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/source-repository/index.html b/source-repository/index.html
index 57e989957a9..d3fb247a201 100644
--- a/source-repository/index.html
+++ b/source-repository/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Source Repository -
Apache HBase</title><meta name="description" content="Access the Apache HBase
source code repository."/><link rel="preconnect"
href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin="anonymous"/><link
rel="modulepreload" href="/as [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Source Repository -
Apache HBase</title><meta name="description" content="Access the Apache HBase
source code repository."/><link rel="preload" as="font"
href="/fonts/inter-latin-wght-normal.woff2" type="font/woff2"
crossorigin="anonymous"/><link rel="prefetch" as="font"
href="/fonts/inter-latin-wgh [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight
text-balance md:text-6xl">Overview</h1>
<p class="mb-4 text-base leading-7">Apache HBase™ uses <a
href="https://git-scm.com/" target="_blank" rel="noopener noreferrer"
class="text-primary inline underline-offset-4 hover:underline">Git<!-- --> <svg
xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round" class="lucide lucide-external-link inline size-3.5
align-[-2px]"><path d="M15 3h6v6"></path><path d="M10 14 [...]
<h3 class="mt-8 mb-1 scroll-mt-28 text-xl font-semibold tracking-tight">Web
Browser Access</h3>
<p class="mb-4 text-base leading-7">The following is a link to a browsable
version of the source repository:</p>
@@ -43,11 +44,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/source-repository-CuYRai5W.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/source-repository-D7Xzv9nd.js";
window.__reactRouterRouteModules =
{"root":route0,"routes/source-repository":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/sponsors/index.html b/sponsors/index.html
index 7bf11e5eb97..a24d474bf4c 100644
--- a/sponsors/index.html
+++ b/sponsors/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Sponsors - Apache
HBase</title><meta name="description" content="Companies and organizations that
sponsor the Apache HBase project with tools and resources."/><link
rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin="anonymous"/> [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Sponsors - Apache
HBase</title><meta name="description" content="Companies and organizations that
sponsor the Apache HBase project with tools and resources."/><link
rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2"
type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as= [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight
text-balance md:text-6xl">Sponsors</h1>
<p class="mb-4 text-base leading-7">First off, thanks to <a
href="http://www.apache.org/foundation/thanks.html" target="_blank"
rel="noopener noreferrer" class="text-primary inline underline-offset-4
hover:underline">all who sponsor<!-- --> <svg
xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round" class="lucide lucide-external-link inline size-3.5
align-[-2px]"><path [...]
<p class="mb-4 text-base leading-7">The below companies have been gracious
enough to provide their commercial tool offerings free of charge to the Apache
HBase™ project.</p>
<ul class="mb-4 ml-6 list-disc space-y-2">
@@ -38,11 +39,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/sponsors-Be-uqIKJ.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/sponsors-D__nLzUg.js";
window.__reactRouterRouteModules = {"root":route0,"routes/sponsors":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
index 832c0390f2a..4aef4e2c9a2 100644
--- a/team/index.html
+++ b/team/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Team - Apache
HBase</title><meta name="description" content="Meet the Apache HBase project
team members and contributors who develop and maintain HBase."/><link
rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect"
href="https://fonts.gstatic.com" crossorigin="anonymous"/><lin [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta
name="viewport" content="width=device-width, initial-scale=1"/><link
rel="preload" as="image" href="/images/logo.svg"/><title>Team - Apache
HBase</title><meta name="description" content="Meet the Apache HBase project
team members and contributors who develop and maintain HBase."/><link
rel="preload" as="font" href="/fonts/inter-latin-wght-normal.woff2"
type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="fon [...]
(function() {
const theme = localStorage.getItem('theme');
const root = document.documentElement;
@@ -12,7 +12,8 @@
localStorage.setItem('theme', systemTheme);
}
})();
- </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body><header class="border-border/0
bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50
w-full border-b backdrop-blur transition-[border] duration-200"><nav
class="container mx-auto flex h-16 items-center justify-between px-4"><a
class="relative z-50 flex items-center gap-3" aria-label="HBase Home" href="/"
data-discover="true"><img src="/images/l [...]
+ </script><noscript><style>.theme-toggle-wrapper { display: none
!important; }</style></noscript></head><body class="font-base"><header
class="border-border/0 bg-background/80
supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 w-full border-b
backdrop-blur transition-[border] duration-200"><nav class="container mx-auto
flex h-16 items-center justify-between px-4"><a class="relative z-50 flex
items-center gap-3" aria-label="HBase Home" href="/" data-discover="true"><
[...]
+<h1 class="my-12 text-center text-4xl font-semibold tracking-tight
text-balance md:text-6xl">The Team</h1>
<p class="mb-4 text-base leading-7">A successful project requires many people
to play many roles. Some members write code or documentation, while others are
valuable as testers, submitting patches and suggestions.</p>
<p class="mb-4 text-base leading-7">The team is comprised of Members and
Contributors. Members have direct access to the source of a project and
actively evolve the code-base. Contributors improve the project through
submission of patches and suggestions to the Members. The number of
Contributors to the project is unbounded. Get involved today. All contributions
to the project are greatly appreciated.</p>
<h2 class="mt-12 mb-4 scroll-mt-28 text-3xl font-semibold tracking-tight
md:text-4xl">Members</h2>
@@ -823,11 +824,11 @@
console.error(error);
sessionStorage.removeItem(storageKey2);
}
- })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
-import * as route0 from "/assets/root-9COJZ4pl.js";
-import * as route1 from "/assets/team-Dv-KHXCU.js";
+ })("react-router-scroll-positions",
null)</script><script>window.__reactRouterContext =
{"basename":"/","future":{"v8_middleware":false,"unstable_optimizeDeps":false,"unstable_splitRouteModules":false,"unstable_subResourceIntegrity":false,"unstable_viteEnvironmentApi":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":false};window.__reactRouterContext.stream
= new
ReadableStream({start(controller){window.__reactRouterContext.streamController
= controller;}}).pipeThroug [...]
+import * as route0 from "/assets/root-CPpn2GwT.js";
+import * as route1 from "/assets/team-7qd-tD0H.js";
window.__reactRouterRouteModules = {"root":route0,"routes/team":route1};
-import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
+import("/assets/entry.client-D-YQWBLI.js");</script><section
id="getting-started" class="border-border/60 bg-muted/30 border-y"><div
class="container mx-auto px-4 py-12 md:py-16"><div class="mb-8 text-center"><h2
class="text-3xl font-semibold tracking-tight md:text-4xl">Getting
Started</h2><p class="text-muted-foreground mt-2">From download to production
in a few simple steps.</p></div><div class="grid grid-cols-1 gap-4
md:grid-cols-3"><div class="border-border/60 bg-card flex flex-col r [...]
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof
$RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div
hidden
id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>
\ No newline at end of file