This is an automated email from the ASF dual-hosted git repository.
zhouyuan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten-site.git
The following commit(s) were added to refs/heads/main by this push:
new 15edc5fb redesign
15edc5fb is described below
commit 15edc5fb3bf880815612a60b59a1975c5335fedc
Author: Yuan <[email protected]>
AuthorDate: Thu Aug 20 17:42:42 2026 +0100
redesign
Signed-off-by: Yuan <[email protected]>
---
.gitignore | 1 +
404.html | 28 +-
_config.yml | 16 +-
_docs/v1.5.0/Configuration.md | 7 -
_includes/gluten/footer.html | 51 ++
_includes/gluten/head.html | 24 +
_includes/gluten/navbar.html | 42 ++
_layouts/base.html | 36 ++
_layouts/post.html | 17 +-
_layouts/site-page.html | 13 +
_posts/2024-02-08-welcome-to-jekyll.markdown | 29 --
about.markdown | 19 -
assets/css/style.css | 751 +++++++++++++++++++++++++++
blog.html | 6 +-
contact-us.md | 2 +-
contributing.md | 2 +-
downloads.md | 2 +-
index.html | 204 ++++++++
index.markdown | 6 -
index.md | 182 -------
poweredby.md | 2 +-
references.md | 2 +-
22 files changed, 1165 insertions(+), 277 deletions(-)
diff --git a/.gitignore b/.gitignore
index f40fbd8b..62519cd6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ _site
.jekyll-cache
.jekyll-metadata
vendor
+.bundle
diff --git a/404.html b/404.html
index d00750a6..e7540019 100644
--- a/404.html
+++ b/404.html
@@ -1,25 +1,13 @@
---
permalink: /404.html
-layout: default
+layout: site-page
+title: Page not found
+nav_exclude: true
+search_exclude: true
---
-<style type="text/css" media="screen">
- .container {
- margin: 10px auto;
- max-width: 600px;
- text-align: center;
- }
- h1 {
- margin: 30px 0;
- font-size: 4em;
- line-height: 1;
- letter-spacing: -1px;
- }
-</style>
-
-<div class="container">
- <h1>404</h1>
-
- <p><strong>Gluten Page not found :(</strong></p>
- <p>The requested gluten webiste's page could not be found.</p>
+<div style="text-align:center;padding:40px 0;">
+ <p style="font-size:1.1rem;"><strong>The requested page could not be
found.</strong></p>
+ <p>The page you're looking for may have been moved or removed.</p>
+ <p style="margin-top:24px;"><a href="/" class="btn btn-primary"
style="display:inline-flex;">Back to Home</a></p>
</div>
diff --git a/_config.yml b/_config.yml
index fe847017..7f57e821 100644
--- a/_config.yml
+++ b/_config.yml
@@ -21,7 +21,7 @@
title: Apache Gluten
email: [email protected]
description: "Gluten is a middle layer responsible for offloading JVM-based
SQL engines' execution to native engines."
-baseurl: "/" # the subpath of your site, e.g. /blog
+baseurl: "" # the subpath of your site, e.g. /blog
domain: apache.org
url: "https://gluten.apache.org" # the base hostname & protocol for your site,
e.g. http://example.com
twitter_username: jekyllrb
@@ -42,6 +42,20 @@ plugins:
logo: "/assets/images/gluten-logo-blue.png"
+# Top navigation links used by the custom site layouts (base/page/post).
+# Docs pages under _docs keep the just-the-docs theme navigation.
+nav_links:
+ - title: Documentation
+ url: https://apache.github.io/gluten/
+ - title: Downloads
+ url: /downloads/
+ - title: Blog
+ url: /blog/
+ - title: Community
+ url: /community/
+ - title: Powered By
+ url: /poweredby/
+
# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
diff --git a/_docs/v1.5.0/Configuration.md b/_docs/v1.5.0/Configuration.md
index f8b0ebbc..868a2cae 100644
--- a/_docs/v1.5.0/Configuration.md
+++ b/_docs/v1.5.0/Configuration.md
@@ -6,13 +6,6 @@ parent: v1.5.0
---
<!-- DO NOT MODIFY THIS FILE DIRECTLY, IT IS AUTO-GENERATED BY
[org.apache.gluten.config.AllGlutenConfiguration] -->
----
-
-layout: page
-title: Configuration
-nav_order: 15
--------------
-
## Spark base configurations for Gluten plugin
| Key | Recommend Setting
|
Description
|
diff --git a/_includes/gluten/footer.html b/_includes/gluten/footer.html
new file mode 100644
index 00000000..13ed69af
--- /dev/null
+++ b/_includes/gluten/footer.html
@@ -0,0 +1,51 @@
+<footer class="site-footer">
+ <div class="container">
+ <div class="footer-grid">
+ <div class="footer-brand">
+ <a href="/" class="navbar-brand">
+ <img src="/assets/images/gluten-logo-blue.png" alt="Gluten">
+ Apache Gluten
+ </a>
+ <p>A middle layer responsible for offloading JVM-based SQL engines'
execution to native engines.</p>
+ </div>
+
+ <div class="footer-col">
+ <h4>Project</h4>
+ <ul>
+ <li><a href="https://apache.github.io/gluten/" target="_blank"
rel="noopener">Documentation</a></li>
+ <li><a href="/downloads/">Downloads</a></li>
+ <li><a href="/contributing/">Contributing</a></li>
+ <li><a href="/references/">References</a></li>
+ <li><a href="/archives/">Doc Archives</a></li>
+ </ul>
+ </div>
+
+ <div class="footer-col">
+ <h4>Community</h4>
+ <ul>
+ <li><a href="https://github.com/apache/gluten" target="_blank"
rel="noopener">GitHub</a></li>
+ <li><a href="mailto:[email protected]">Mailing List</a></li>
+ <li><a href="https://github.com/apache/gluten/issues"
target="_blank" rel="noopener">Issues</a></li>
+ <li><a href="/community/">Community</a></li>
+ <li><a href="/poweredby/">Powered By</a></li>
+ </ul>
+ </div>
+
+ <div class="footer-col">
+ <h4>Apache</h4>
+ <ul>
+ <li><a href="https://www.apache.org/" target="_blank"
rel="noopener">Foundation</a></li>
+ <li><a href="https://www.apache.org/licenses/" target="_blank"
rel="noopener">License</a></li>
+ <li><a href="https://www.apache.org/security/" target="_blank"
rel="noopener">Security</a></li>
+ <li><a
href="https://privacy.apache.org/policies/privacy-policy-public.html"
target="_blank" rel="noopener">Privacy</a></li>
+ <li><a href="https://www.apache.org/foundation/sponsorship.html"
target="_blank" rel="noopener">Sponsorship</a></li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="footer-bottom">
+ <p>Copyright © {{ 'now' | date: "%Y" }} The Apache Software
Foundation, Licensed under the <a
href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
+ <p>Apache Gluten, Gluten, Apache, the Apache feather logo, and the
Apache Gluten project logo are either registered trademarks or trademarks of
The Apache Software Foundation.</p>
+ </div>
+ </div>
+</footer>
diff --git a/_includes/gluten/head.html b/_includes/gluten/head.html
new file mode 100644
index 00000000..b3c0d3b7
--- /dev/null
+++ b/_includes/gluten/head.html
@@ -0,0 +1,24 @@
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>{% if page.title %}{{ page.title }} | {% endif %}{{ site.title
}}</title>
+<meta name="description" content="{{ page.description | default:
site.description }}">
+<meta property="og:title" content="{% if page.title %}{{ page.title }} | {%
endif %}{{ site.title }}">
+<meta property="og:description" content="{{ page.description | default:
site.description }}">
+<meta property="og:type" content="website">
+<script>
+ /* Apply the saved (or OS-preferred) color scheme before first paint to
avoid a flash. */
+ (function () {
+ var theme = 'dark';
+ try {
+ theme = localStorage.getItem('gluten-theme') ||
+ (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light'
: 'dark');
+ } catch (e) {}
+ document.documentElement.setAttribute('data-theme', theme);
+ })();
+</script>
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap"
rel="stylesheet">
+<link rel="stylesheet" href="/assets/css/style.css">
+<link rel="icon" href="/assets/images/gluten-logo-blue.png" type="image/png">
+{% feed_meta %}
diff --git a/_includes/gluten/navbar.html b/_includes/gluten/navbar.html
new file mode 100644
index 00000000..acf2673c
--- /dev/null
+++ b/_includes/gluten/navbar.html
@@ -0,0 +1,42 @@
+<nav class="navbar" id="navbar">
+ <div class="container">
+ <a href="/" class="navbar-brand">
+ <img src="/assets/images/gluten-logo-blue.png" alt="Gluten">
+ Apache Gluten
+ </a>
+
+ <ul class="navbar-links" id="navLinks">
+ {% for link in site.nav_links %}
+ <li><a href="{{ link.url }}">{{ link.title }}</a></li>
+ {% endfor %}
+ <li>
+ <div class="asf-dropdown">
+ <button class="asf-dropdown-btn">ASF ▾</button>
+ <div class="asf-dropdown-content">
+ <a href="https://www.apache.org/">Foundation</a>
+ <a
href="https://www.apache.org/events/current-event.html">Events</a>
+ <a href="https://www.apache.org/licenses/">License</a>
+ <a
href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ <a href="https://www.apache.org/security/">Security</a>
+ <a
href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</a>
+ <a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
+ </div>
+ </div>
+ </li>
+ <li>
+ <a href="https://github.com/apache/gluten" class="navbar-github"
target="_blank" rel="noopener">
+ <svg width="18" height="18" viewBox="0 0 16 16"
fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47
7.59.4.07.55-.17.55-.38
0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01
1.08.58 1.23.82.72 1.21 1.87.87
2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95
0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18
1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 [...]
+ GitHub
+ </a>
+ </li>
+ <li>
+ <button class="theme-toggle" id="themeToggle" aria-label="Switch
between light and dark color scheme" title="Switch color scheme">
+ <svg class="icon-sun" width="16" height="16" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1"
x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22"
y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78"
y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23"
y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y [...]
+ <svg class="icon-moon" width="16" height="16" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21
12.79z"/></svg>
+ </button>
+ </li>
+ </ul>
+
+ <button class="nav-toggle" id="navToggle" aria-label="Toggle
navigation">☰</button>
+ </div>
+</nav>
diff --git a/_layouts/base.html b/_layouts/base.html
new file mode 100644
index 00000000..9f9f258a
--- /dev/null
+++ b/_layouts/base.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ {% include gluten/head.html %}
+</head>
+<body>
+ {% include gluten/navbar.html %}
+
+ <main>
+ {{ content }}
+ </main>
+
+ {% include gluten/footer.html %}
+
+ <script>
+ (function () {
+ var toggle = document.getElementById('navToggle');
+ var links = document.getElementById('navLinks');
+ if (toggle && links) {
+ toggle.addEventListener('click', function () {
+ links.classList.toggle('active');
+ });
+ }
+
+ var themeToggle = document.getElementById('themeToggle');
+ if (themeToggle) {
+ themeToggle.addEventListener('click', function () {
+ var next = document.documentElement.getAttribute('data-theme') ===
'light' ? 'dark' : 'light';
+ document.documentElement.setAttribute('data-theme', next);
+ try { localStorage.setItem('gluten-theme', next); } catch (e) {}
+ });
+ }
+ })();
+ </script>
+</body>
+</html>
diff --git a/_layouts/post.html b/_layouts/post.html
index fdcc889f..f1b22ff6 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -1,7 +1,14 @@
---
-layout: default
+layout: base
---
-<h1>{{ page.title }}</h1>
-<p>{{ page.date | date_to_string }} - {{ page.author }}</p>
-
-{{ content }}
+<div class="page-wrapper">
+ <div class="container">
+ <div class="page-header">
+ <h1>{{ page.title }}</h1>
+ <p class="post-meta">{{ page.date | date: "%B %-d, %Y" }}{% if
page.author %} · {{ page.author }}{% endif %}</p>
+ </div>
+ <div class="page-content">
+ {{ content }}
+ </div>
+ </div>
+</div>
diff --git a/_layouts/site-page.html b/_layouts/site-page.html
new file mode 100644
index 00000000..857dcbdc
--- /dev/null
+++ b/_layouts/site-page.html
@@ -0,0 +1,13 @@
+---
+layout: base
+---
+<div class="page-wrapper">
+ <div class="container">
+ <div class="page-header">
+ <h1>{{ page.title }}</h1>
+ </div>
+ <div class="page-content">
+ {{ content }}
+ </div>
+ </div>
+</div>
diff --git a/_posts/2024-02-08-welcome-to-jekyll.markdown
b/_posts/2024-02-08-welcome-to-jekyll.markdown
deleted file mode 100644
index f4f77e47..00000000
--- a/_posts/2024-02-08-welcome-to-jekyll.markdown
+++ /dev/null
@@ -1,29 +0,0 @@
----
-layout: post
-title: "Welcome to Jekyll!"
-date: 2024-02-08 16:04:00 +0800
-categories: jekyll update
----
-You’ll find this post in your `_posts` directory. Go ahead and edit it and
re-build the site to see your changes. You can rebuild the site in many
different ways, but the most common way is to run `jekyll serve`, which
launches a web server and auto-regenerates your site when a file is updated.
-
-Jekyll requires blog post files to be named according to the following format:
-
-`YEAR-MONTH-DAY-title.MARKUP`
-
-Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit
numbers, and `MARKUP` is the file extension representing the format used in the
file. After that, include the necessary front matter. Take a look at the source
for this post to get an idea about how it works.
-
-Jekyll also offers powerful support for code snippets:
-
-{% highlight ruby %}
-def print_hi(name)
- puts "Hi, #{name}"
-end
-print_hi('Tom')
-#=> prints 'Hi, Tom' to STDOUT.
-{% endhighlight %}
-
-Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most
out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub
repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll
Talk][jekyll-talk].
-
-[jekyll-docs]: https://jekyllrb.com/docs/home
-[jekyll-gh]: https://github.com/jekyll/jekyll
-[jekyll-talk]: https://talk.jekyllrb.com/
diff --git a/about.markdown b/about.markdown
deleted file mode 100644
index b27b579d..00000000
--- a/about.markdown
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: page
-title: About
-nav_order: 11
-permalink: /about/
----
-
-This is the base Jekyll theme. You can find out more info about customizing
your Jekyll theme, as well as basic Jekyll usage documentation at
[jekyllrb.com](https://jekyllrb.com/)
-
-You can find the source code for Minima at GitHub:
-[jekyll][jekyll-organization] /
-[minima](https://github.com/jekyll/minima)
-
-You can find the source code for Jekyll at GitHub:
-[jekyll][jekyll-organization] /
-[jekyll](https://github.com/jekyll/jekyll)
-
-
-[jekyll-organization]: https://github.com/jekyll
diff --git a/assets/css/style.css b/assets/css/style.css
new file mode 100644
index 00000000..6789ea81
--- /dev/null
+++ b/assets/css/style.css
@@ -0,0 +1,751 @@
+/* ========================================
+ Apache Gluten — vllm.ai-inspired theme
+ ======================================== */
+
+/* ---------- Reset & Base ---------- */
+*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
+
+:root {
+ --max-width: 1200px;
+ --nav-height: 64px;
+ --radius: 12px;
+ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI',
Roboto, sans-serif;
+ --font-mono: 'JetBrains Mono', 'Fira Code', monospace;
+}
+
+/* Dark scheme (default) */
+:root,
+html[data-theme="dark"] {
+ color-scheme: dark;
+ --bg-primary: #0b0f1a;
+ --bg-secondary: #111827;
+ --bg-card: #1a2235;
+ --bg-card-hover: #222d42;
+ --text-primary: #f1f5f9;
+ --text-secondary:#94a3b8;
+ --accent: #6366f1;
+ --accent-light: #818cf8;
+ --accent-glow: rgba(99,102,241,0.25);
+ --border: #1e293b;
+ --gradient-hero: linear-gradient(135deg, #0b0f1a 0%, #1e1b4b 50%, #0b0f1a
100%);
+ --navbar-bg: rgba(11,15,26,0.85);
+ --hero-title-start: #ffffff;
+ --link-hover: #a5b4fc;
+ --dropdown-shadow: 0 8px 32px rgba(0,0,0,0.4);
+}
+
+/* Light scheme */
+html[data-theme="light"] {
+ color-scheme: light;
+ --bg-primary: #ffffff;
+ --bg-secondary: #f4f6fa;
+ --bg-card: #ffffff;
+ --bg-card-hover: #f8fafc;
+ --text-primary: #0f172a;
+ --text-secondary:#475569;
+ --accent: #4f46e5;
+ --accent-light: #4f46e5;
+ --accent-glow: rgba(79,70,229,0.15);
+ --border: #e2e8f0;
+ --gradient-hero: linear-gradient(135deg, #f8fafc 0%, #e0e7ff 50%, #f8fafc
100%);
+ --navbar-bg: rgba(255,255,255,0.85);
+ --hero-title-start: #0f172a;
+ --link-hover: #3730a3;
+ --dropdown-shadow: 0 8px 32px rgba(15,23,42,0.15);
+}
+
+html { scroll-behavior: smooth; font-size: 16px; }
+
+body {
+ font-family: var(--font-sans);
+ background: var(--bg-primary);
+ color: var(--text-primary);
+ line-height: 1.7;
+ -webkit-font-smoothing: antialiased;
+ transition: background .25s, color .25s;
+}
+
+a { color: var(--accent-light); text-decoration: none; transition: color .2s; }
+a:hover { color: var(--link-hover); }
+
+img { max-width: 100%; height: auto; }
+
+/* ---------- Utility ---------- */
+.container { max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }
+.section { padding: 80px 0; }
+.section-alt { background: var(--bg-secondary); }
+.text-center { text-align: center; }
+.text-secondary { color: var(--text-secondary); }
+
+.section-title {
+ font-size: 2.25rem;
+ font-weight: 700;
+ margin-bottom: 16px;
+ letter-spacing: -0.02em;
+}
+
+.section-subtitle {
+ font-size: 1.125rem;
+ color: var(--text-secondary);
+ max-width: 640px;
+ margin: 0 auto 48px;
+}
+
+/* ---------- Navbar ---------- */
+.navbar {
+ position: fixed;
+ top: 0; left: 0; right: 0;
+ height: var(--nav-height);
+ background: var(--navbar-bg);
+ backdrop-filter: blur(12px);
+ -webkit-backdrop-filter: blur(12px);
+ border-bottom: 1px solid var(--border);
+ z-index: 1000;
+ display: flex;
+ align-items: center;
+}
+
+.navbar .container {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 100%;
+}
+
+.navbar-brand {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ font-weight: 700;
+ font-size: 1.2rem;
+ color: var(--text-primary);
+}
+
+/* The logo image includes a dark wordmark that is invisible on the dark
+ theme, so crop to the square glyph on the left. */
+.navbar-brand img {
+ height: 32px;
+ width: 32px;
+ object-fit: cover;
+ object-position: left center;
+}
+
+.navbar-links {
+ display: flex;
+ align-items: center;
+ gap: 28px;
+ list-style: none;
+}
+
+.navbar-links a {
+ color: var(--text-secondary);
+ font-size: 0.9rem;
+ font-weight: 500;
+ transition: color .2s;
+}
+
+.navbar-links a:hover { color: var(--text-primary); }
+
+.navbar-github {
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ padding: 6px 14px;
+ border: 1px solid var(--border);
+ border-radius: 8px;
+ font-size: 0.85rem;
+ color: var(--text-secondary);
+ transition: border-color .2s, color .2s;
+}
+
+.navbar-github:hover {
+ border-color: var(--accent);
+ color: var(--text-primary);
+}
+
+/* Theme (light/dark) toggle */
+.theme-toggle {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 34px;
+ height: 34px;
+ background: none;
+ border: 1px solid var(--border);
+ border-radius: 8px;
+ color: var(--text-secondary);
+ cursor: pointer;
+ transition: border-color .2s, color .2s;
+}
+
+.theme-toggle:hover {
+ border-color: var(--accent);
+ color: var(--text-primary);
+}
+
+/* Show the icon of the scheme you would switch TO */
+html[data-theme="light"] .theme-toggle .icon-sun { display: none; }
+html[data-theme="dark"] .theme-toggle .icon-moon { display: none; }
+:root:not([data-theme="light"]) .theme-toggle .icon-moon { display: none; }
+
+/* Mobile nav toggle */
+.nav-toggle {
+ display: none;
+ background: none;
+ border: none;
+ color: var(--text-primary);
+ font-size: 1.5rem;
+ cursor: pointer;
+}
+
+/* ---------- Hero ---------- */
+.hero {
+ min-height: clamp(520px, 85vh, 820px);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ background: var(--gradient-hero);
+ padding: calc(var(--nav-height) + 48px) 0 64px;
+ position: relative;
+ overflow: hidden;
+}
+
+.hero::before {
+ content: '';
+ position: absolute;
+ width: 600px; height: 600px;
+ background: radial-gradient(circle, var(--accent-glow) 0%, transparent 70%);
+ top: 50%; left: 50%;
+ transform: translate(-50%, -50%);
+ pointer-events: none;
+}
+
+.hero-content { position: relative; z-index: 1; max-width: 820px; padding: 0
24px; }
+
+.hero-badge {
+ display: inline-block;
+ padding: 6px 16px;
+ background: rgba(99,102,241,0.15);
+ border: 1px solid rgba(99,102,241,0.3);
+ border-radius: 999px;
+ font-size: 0.85rem;
+ color: var(--accent-light);
+ margin-bottom: 24px;
+}
+
+.hero h1 {
+ font-size: 3.75rem;
+ font-weight: 800;
+ line-height: 1.1;
+ letter-spacing: -0.03em;
+ margin-bottom: 24px;
+ background: linear-gradient(135deg, var(--hero-title-start) 30%,
var(--accent-light));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+.hero p {
+ font-size: 1.25rem;
+ color: var(--text-secondary);
+ margin-bottom: 40px;
+ max-width: 600px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.hero-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap:
wrap; }
+
+.btn {
+ display: inline-flex;
+ align-items: center;
+ gap: 8px;
+ padding: 12px 28px;
+ border-radius: 10px;
+ font-weight: 600;
+ font-size: 1rem;
+ transition: transform .15s, box-shadow .2s;
+ cursor: pointer;
+ border: none;
+}
+
+.btn:hover { transform: translateY(-2px); }
+
+.btn-primary {
+ background: var(--accent);
+ color: #fff;
+ box-shadow: 0 4px 24px var(--accent-glow);
+}
+.btn-primary:hover { background: var(--accent-light); color: #fff; }
+
+.btn-secondary {
+ background: transparent;
+ color: var(--text-primary);
+ border: 1px solid var(--border);
+}
+.btn-secondary:hover { border-color: var(--accent); color:
var(--accent-light); }
+
+/* ---------- Features ---------- */
+.features-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 24px;
+}
+
+.feature-card {
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ border-radius: var(--radius);
+ padding: 32px 28px;
+ transition: border-color .25s, transform .25s, box-shadow .25s;
+}
+
+.feature-card:hover {
+ border-color: var(--accent);
+ transform: translateY(-4px);
+ box-shadow: 0 8px 32px var(--accent-glow);
+}
+
+.feature-icon {
+ width: 48px; height: 48px;
+ display: flex; align-items: center; justify-content: center;
+ background: rgba(99,102,241,0.12);
+ border-radius: 10px;
+ margin-bottom: 20px;
+ font-size: 1.5rem;
+}
+
+.feature-card h3 {
+ font-size: 1.15rem;
+ font-weight: 600;
+ margin-bottom: 10px;
+}
+
+.feature-card p {
+ color: var(--text-secondary);
+ font-size: 0.95rem;
+ line-height: 1.6;
+}
+
+/* ---------- Stats bar ---------- */
+.stats {
+ display: flex;
+ justify-content: center;
+ gap: 64px;
+ flex-wrap: wrap;
+ padding: 48px 0;
+}
+
+.stat-item { text-align: center; }
+
+.stat-number {
+ font-size: 2.75rem;
+ font-weight: 800;
+ color: var(--accent-light);
+ letter-spacing: -0.02em;
+}
+
+.stat-label {
+ font-size: 0.9rem;
+ color: var(--text-secondary);
+ margin-top: 4px;
+}
+
+/* ---------- Architecture ---------- */
+.architecture-img {
+ max-width: 860px;
+ margin: 0 auto;
+ display: block;
+ border-radius: var(--radius);
+ border: 1px solid var(--border);
+}
+
+/* ---------- Performance ---------- */
+.perf-grid {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 32px;
+ margin-top: 32px;
+}
+
+.perf-card {
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ border-radius: var(--radius);
+ overflow: hidden;
+}
+
+.perf-card img {
+ width: 100%;
+ display: block;
+}
+
+.perf-card .perf-caption {
+ padding: 16px 20px;
+ font-size: 0.9rem;
+ color: var(--text-secondary);
+}
+
+/* ---------- Powered By / Logos ---------- */
+.logo-grid {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ gap: 32px 48px;
+ margin-top: 40px;
+}
+
+.logo-grid span {
+ font-size: 1.1rem;
+ font-weight: 600;
+ color: var(--text-secondary);
+ padding: 12px 24px;
+ border: 1px solid var(--border);
+ border-radius: 8px;
+ transition: border-color .2s, color .2s;
+}
+
+.logo-grid span:hover {
+ border-color: var(--accent);
+ color: var(--text-primary);
+}
+
+/* ---------- CTA banner ---------- */
+.cta-banner {
+ text-align: center;
+ padding: 80px 24px;
+ background: var(--gradient-hero);
+ position: relative;
+}
+
+.cta-banner h2 {
+ font-size: 2.5rem;
+ font-weight: 700;
+ margin-bottom: 16px;
+}
+
+.cta-banner p {
+ color: var(--text-secondary);
+ font-size: 1.1rem;
+ margin-bottom: 32px;
+}
+
+/* ---------- Footer ---------- */
+.site-footer {
+ background: var(--bg-secondary);
+ border-top: 1px solid var(--border);
+ padding: 48px 0 32px;
+}
+
+.footer-grid {
+ display: grid;
+ grid-template-columns: 2fr 1fr 1fr 1fr;
+ gap: 40px;
+ margin-bottom: 40px;
+}
+
+.footer-brand p {
+ color: var(--text-secondary);
+ font-size: 0.9rem;
+ margin-top: 12px;
+ max-width: 300px;
+}
+
+.footer-col h4 {
+ font-size: 0.85rem;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.06em;
+ color: var(--text-secondary);
+ margin-bottom: 16px;
+}
+
+.footer-col ul { list-style: none; }
+
+.footer-col li { margin-bottom: 10px; }
+
+.footer-col a {
+ color: var(--text-secondary);
+ font-size: 0.9rem;
+}
+.footer-col a:hover { color: var(--text-primary); }
+
+.footer-bottom {
+ border-top: 1px solid var(--border);
+ padding-top: 24px;
+ display: flex;
+ justify-content: space-between;
+ flex-wrap: wrap;
+ gap: 12px;
+}
+
+.footer-bottom p {
+ color: var(--text-secondary);
+ font-size: 0.8rem;
+}
+
+.footer-bottom a { color: var(--text-secondary); }
+.footer-bottom a:hover { color: var(--text-primary); }
+
+/* ---------- Page content (docs/blog/etc) ---------- */
+.page-wrapper {
+ padding-top: calc(var(--nav-height) + 48px);
+ padding-bottom: 80px;
+ min-height: 70vh;
+}
+
+.page-wrapper .container { max-width: 860px; }
+
+.page-header {
+ margin-bottom: 40px;
+ padding-bottom: 24px;
+ border-bottom: 1px solid var(--border);
+}
+
+.page-header h1 {
+ font-size: 2.5rem;
+ font-weight: 700;
+ letter-spacing: -0.02em;
+}
+
+.page-content h1,
+.page-content h2,
+.page-content h3,
+.page-content h4 {
+ margin-top: 2em;
+ margin-bottom: 0.75em;
+ font-weight: 600;
+}
+
+.page-content h1 { font-size: 2rem; }
+.page-content h2 { font-size: 1.5rem; border-bottom: 1px solid var(--border);
padding-bottom: 8px; }
+.page-content h3 { font-size: 1.2rem; }
+
+.page-content p { margin-bottom: 1em; color: var(--text-secondary); }
+.page-content li { color: var(--text-secondary); margin-bottom: 4px; }
+
+.page-content ul,
+.page-content ol {
+ margin-left: 24px;
+ margin-bottom: 1em;
+}
+
+.page-content code {
+ background: var(--bg-card);
+ padding: 2px 6px;
+ border-radius: 4px;
+ font-family: var(--font-mono);
+ font-size: 0.9em;
+}
+
+.page-content pre {
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ border-radius: 8px;
+ padding: 20px;
+ overflow-x: auto;
+ margin-bottom: 1.5em;
+}
+
+.page-content pre code {
+ background: none;
+ padding: 0;
+}
+
+.page-content table {
+ width: 100%;
+ border-collapse: collapse;
+ margin-bottom: 1.5em;
+ font-size: 0.9rem;
+}
+
+.page-content th {
+ background: var(--bg-card);
+ padding: 10px 14px;
+ text-align: left;
+ font-weight: 600;
+ border-bottom: 2px solid var(--border);
+}
+
+.page-content td {
+ padding: 10px 14px;
+ border-bottom: 1px solid var(--border);
+ color: var(--text-secondary);
+}
+
+.page-content img {
+ border-radius: 8px;
+ border: 1px solid var(--border);
+ margin: 16px 0;
+}
+
+.page-content blockquote {
+ border-left: 3px solid var(--accent);
+ margin: 1em 0;
+ padding: 12px 20px;
+ background: var(--bg-card);
+ border-radius: 0 8px 8px 0;
+}
+
+.page-content blockquote p { margin-bottom: 0; }
+
+.page-content strong { color: var(--text-primary); }
+
+/* ---------- Blog list ---------- */
+.blog-list { list-style: none; }
+
+.blog-list li {
+ padding: 20px 0;
+ border-bottom: 1px solid var(--border);
+}
+
+.blog-list h2 { font-size: 1.3rem; margin: 0 0 8px; border: none; padding: 0; }
+.blog-list h2 a { color: var(--text-primary); }
+.blog-list h2 a:hover { color: var(--accent-light); }
+
+/* ---------- ASF dropdown (simplified for new theme) ---------- */
+.asf-dropdown {
+ position: relative;
+ display: inline-block;
+}
+
+.asf-dropdown-btn {
+ background: none;
+ border: 1px solid var(--border);
+ color: var(--text-secondary);
+ padding: 6px 14px;
+ border-radius: 8px;
+ font-size: 0.85rem;
+ cursor: pointer;
+ font-family: var(--font-sans);
+ transition: border-color .2s;
+}
+
+.asf-dropdown-btn:hover { border-color: var(--accent); color:
var(--text-primary); }
+
+.asf-dropdown-content {
+ display: none;
+ position: absolute;
+ right: 0;
+ top: calc(100% + 4px);
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ border-radius: 8px;
+ min-width: 180px;
+ box-shadow: var(--dropdown-shadow);
+ z-index: 100;
+ overflow: hidden;
+}
+
+.asf-dropdown:hover .asf-dropdown-content { display: block; }
+
+.asf-dropdown-content a {
+ display: block;
+ padding: 10px 16px;
+ color: var(--text-secondary);
+ font-size: 0.85rem;
+ transition: background .15s;
+}
+
+.asf-dropdown-content a:hover {
+ background: var(--bg-card-hover);
+ color: var(--text-primary);
+}
+
+/* ---------- Code block (homepage) ---------- */
+.code-block {
+ max-width: 760px;
+ margin: 0 auto;
+ text-align: left;
+}
+
+.code-block pre {
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ border-radius: var(--radius);
+ padding: 24px;
+ overflow-x: auto;
+}
+
+.code-block code {
+ font-family: var(--font-mono);
+ font-size: 0.875rem;
+ line-height: 1.7;
+ color: var(--text-primary);
+}
+
+/* ---------- News cards ---------- */
+.news-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 24px;
+ text-align: left;
+}
+
+.news-card {
+ display: block;
+ background: var(--bg-card);
+ border: 1px solid var(--border);
+ border-radius: var(--radius);
+ padding: 28px 24px;
+ transition: border-color .25s, transform .25s, box-shadow .25s;
+}
+
+.news-card:hover {
+ border-color: var(--accent);
+ transform: translateY(-4px);
+ box-shadow: 0 8px 32px var(--accent-glow);
+}
+
+.news-card .news-date {
+ font-size: 0.8rem;
+ color: var(--text-secondary);
+ margin-bottom: 10px;
+}
+
+.news-card h3 {
+ font-size: 1.05rem;
+ font-weight: 600;
+ color: var(--text-primary);
+ line-height: 1.5;
+}
+
+/* ---------- Post meta ---------- */
+.post-meta {
+ color: var(--text-secondary);
+ font-size: 0.9rem;
+ margin-top: 8px;
+}
+
+/* ---------- Responsive ---------- */
+@media (max-width: 960px) {
+ .features-grid { grid-template-columns: repeat(2, 1fr); }
+ .footer-grid { grid-template-columns: 1fr 1fr; }
+ .hero h1 { font-size: 2.75rem; }
+ .perf-grid { grid-template-columns: 1fr; }
+ .news-grid { grid-template-columns: 1fr; }
+}
+
+@media (max-width: 640px) {
+ .features-grid { grid-template-columns: 1fr; }
+ .footer-grid { grid-template-columns: 1fr; }
+ .stats { gap: 32px; }
+ .hero h1 { font-size: 2rem; }
+ .section-title { font-size: 1.75rem; }
+
+ .navbar-links { display: none; }
+ .nav-toggle { display: block; }
+
+ .navbar-links.active {
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ top: var(--nav-height);
+ left: 0; right: 0;
+ background: var(--bg-primary);
+ border-bottom: 1px solid var(--border);
+ padding: 16px 24px;
+ gap: 16px;
+ }
+}
\ No newline at end of file
diff --git a/blog.html b/blog.html
index 85419b44..37bba8f8 100644
--- a/blog.html
+++ b/blog.html
@@ -1,15 +1,15 @@
---
-layout: default
+layout: site-page
title: Blog
nav_order: 5
permalink: /blog/
---
-<h1>Latest Posts</h1>
-<ul>
+<ul class="blog-list">
{% for post in site.posts %}
<li>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
+ <p class="post-meta">{{ post.date | date: "%B %-d, %Y" }}{% if
post.author %} · {{ post.author }}{% endif %}</p>
{{ post.excerpt }}
</li>
{% endfor %}
diff --git a/contact-us.md b/contact-us.md
index b9232418..55e98bfa 100644
--- a/contact-us.md
+++ b/contact-us.md
@@ -1,5 +1,5 @@
---
-layout: page
+layout: site-page
title: Community
nav_order: 10
permalink: /community/
diff --git a/contributing.md b/contributing.md
index e33b9171..5a6701b1 100644
--- a/contributing.md
+++ b/contributing.md
@@ -1,5 +1,5 @@
---
-layout: page
+layout: site-page
title: Contributing to Gluten
nav_order: 9
permalink: /contributing/
diff --git a/downloads.md b/downloads.md
index 431b0a59..3a1cb71b 100644
--- a/downloads.md
+++ b/downloads.md
@@ -1,5 +1,5 @@
---
-layout: page
+layout: site-page
title: Downloads
nav_order: 4
permalink: /downloads/
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..4cbf55db
--- /dev/null
+++ b/index.html
@@ -0,0 +1,204 @@
+---
+layout: base
+title: Home
+permalink: /
+nav_exclude: true
+description: Apache Gluten is a middle layer that offloads JVM-based SQL
engines' execution to native engines such as Velox and ClickHouse, doubling
SparkSQL's performance.
+---
+
+<!-- Hero -->
+<section class="hero">
+ <div class="hero-content">
+ <span class="hero-badge">🚀 Apache Top-Level Project</span>
+ <h1>Supercharge SparkSQL with Native Execution</h1>
+ <p>Apache Gluten is a middle layer that offloads JVM-based SQL engines to
native engines like Velox and ClickHouse — delivering up to 3x+ performance
with zero query changes.</p>
+ <div class="hero-buttons">
+ <a href="https://apache.github.io/gluten/" class="btn btn-primary">Get
Started</a>
+ <a href="https://github.com/apache/gluten" class="btn btn-secondary"
target="_blank" rel="noopener">
+ <svg width="18" height="18" viewBox="0 0 16 16"
fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47
7.59.4.07.55-.17.55-.38
0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01
1.08.58 1.23.82.72 1.21 1.87.87
2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95
0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18
1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1. [...]
+ View on GitHub
+ </a>
+ <a href="/downloads/" class="btn btn-secondary">Downloads</a>
+ </div>
+ </div>
+</section>
+
+<!-- Stats -->
+<section class="section-alt">
+ <div class="container">
+ <div class="stats">
+ <div class="stat-item">
+ <div class="stat-number">3.3x</div>
+ <div class="stat-label">TPC-H Speedup</div>
+ </div>
+ <div class="stat-item">
+ <div class="stat-number">3.0x</div>
+ <div class="stat-label">TPC-DS Speedup</div>
+ </div>
+ <div class="stat-item">
+ <div class="stat-number">23x</div>
+ <div class="stat-label">Max Single-Query Speedup</div>
+ </div>
+ <div class="stat-item">
+ <div class="stat-number">15+</div>
+ <div class="stat-label">Production Adopters</div>
+ </div>
+ </div>
+ </div>
+</section>
+
+<!-- Features -->
+<section class="section">
+ <div class="container text-center">
+ <h2 class="section-title">Why Gluten?</h2>
+ <p class="section-subtitle">Gluten bridges the gap between Spark's
scalability and native engine performance — no query changes required.</p>
+ <div class="features-grid">
+ <div class="feature-card">
+ <div class="feature-icon">⚡</div>
+ <h3>Native Execution</h3>
+ <p>Offloads compute-intensive processing from the JVM to highly
optimized native C++ engines for dramatic speedups.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">🔌</div>
+ <h3>Drop-in Plugin</h3>
+ <p>Works as a Spark plugin — no changes to your DataFrames, SQL
queries, or application code. Just add a JAR.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">🔀</div>
+ <h3>Multi-Backend Support</h3>
+ <p>Switch between Velox and ClickHouse backends based on your
workload. Extensible to support more native engines.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">📊</div>
+ <h3>Columnar Processing</h3>
+ <p>End-to-end columnar data pipeline with columnar shuffle, avoiding
expensive row-columnar conversions.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">🛡️</div>
+ <h3>Automatic Fallback</h3>
+ <p>Gracefully falls back to vanilla Spark for unsupported operators,
ensuring correctness on every query.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">📈</div>
+ <h3>Full Observability</h3>
+ <p>Native engine metrics are surfaced in the Spark UI, giving you
visibility into performance and bottlenecks.</p>
+ </div>
+ </div>
+ </div>
+</section>
+
+<!-- Architecture -->
+<section class="section section-alt">
+ <div class="container text-center">
+ <h2 class="section-title">Architecture</h2>
+ <p class="section-subtitle">Spark physical plans are converted to
Substrait and executed by native backends, with results returned via the Spark
Columnar API.</p>
+ <img src="/assets/images/gluten_framework.png" alt="Gluten Architecture"
class="architecture-img">
+ </div>
+</section>
+
+<!-- Quick Start -->
+<section class="section">
+ <div class="container text-center">
+ <h2 class="section-title">Quick Start</h2>
+ <p class="section-subtitle">Grab a bundle JAR from the <a
href="/downloads/">downloads page</a> and enable Gluten with a single Spark
configuration change.</p>
+ <div class="code-block">
+ <pre><code>spark-shell \
+ --master yarn --deploy-mode client \
+ --conf spark.plugins=org.apache.gluten.GlutenPlugin \
+ --conf spark.memory.offHeap.enabled=true \
+ --conf spark.memory.offHeap.size=20g \
+ --conf
spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager \
+ --jars
gluten-velox-bundle-spark3.5_2.12-centos_7_x86_64-1.6.0.jar</code></pre>
+ </div>
+ <p style="margin-top:24px;"><a href="https://apache.github.io/gluten/"
class="btn btn-secondary" style="display:inline-flex;">Read the full
documentation →</a></p>
+ </div>
+</section>
+
+<!-- Performance -->
+<section class="section section-alt">
+ <div class="container text-center">
+ <h2 class="section-title">Performance</h2>
+ <p class="section-subtitle">Benchmarked on TPC-H and TPC-DS at 3TB scale
on Intel® Xeon® Platinum 8592+ with Spark 3.3.1.</p>
+ <div class="perf-grid">
+ <div class="perf-card">
+ <img src="/assets/images/velox_tpch-like_sf3000_time_comparison.png"
alt="TPC-H Time Comparison" loading="lazy">
+ <div class="perf-caption">TPC-H — Overall 3.34x speedup with Gluten +
Velox</div>
+ </div>
+ <div class="perf-card">
+ <img src="/assets/images/velox_tpch-like_sf3000_speedup.png"
alt="TPC-H Speedup" loading="lazy">
+ <div class="perf-caption">TPC-H — Up to 23.45x speedup on individual
queries</div>
+ </div>
+ <div class="perf-card">
+ <img src="/assets/images/velox_tpcds-like_sf3000_time_comparison.png"
alt="TPC-DS Time Comparison" loading="lazy">
+ <div class="perf-caption">TPC-DS — Overall 3.02x speedup with Gluten +
Velox</div>
+ </div>
+ <div class="perf-card">
+ <img src="/assets/images/velox_tpcds-like_sf3000_top20_speedup.png"
alt="TPC-DS Speedup" loading="lazy">
+ <div class="perf-caption">TPC-DS — Up to 13.75x speedup on individual
queries</div>
+ </div>
+ </div>
+ </div>
+</section>
+
+<!-- Powered By -->
+<section class="section">
+ <div class="container text-center">
+ <h2 class="section-title">Trusted in Production</h2>
+ <p class="section-subtitle">Used by leading technology companies across
the globe.</p>
+ <div class="logo-grid">
+ <span>Microsoft</span>
+ <span>Google</span>
+ <span>IBM</span>
+ <span>Alibaba Cloud</span>
+ <span>Bytedance</span>
+ <span>Uber</span>
+ <span>Tencent</span>
+ <span>Meituan</span>
+ <span>Baidu</span>
+ <span>Pinterest</span>
+ <span>Oracle</span>
+ <span>Kyligence</span>
+ <span>BIGO</span>
+ <span>Netease</span>
+ <span>Intel</span>
+ </div>
+ <p style="margin-top:32px;"><a href="/poweredby/" class="btn
btn-secondary" style="display:inline-flex;">View all adopters →</a></p>
+ </div>
+</section>
+
+<!-- Latest News -->
+<section class="section section-alt">
+ <div class="container text-center">
+ <h2 class="section-title">Latest News</h2>
+ <div class="news-grid">
+ {% for post in site.posts limit: 3 %}
+ <a href="{{ post.url }}" class="news-card">
+ <div class="news-date">{{ post.date | date: "%B %-d, %Y" }}</div>
+ <h3>{{ post.title }}</h3>
+ </a>
+ {% endfor %}
+ </div>
+ <p style="margin-top:32px;"><a href="/blog/" class="btn btn-secondary"
style="display:inline-flex;">All posts →</a></p>
+ </div>
+</section>
+
+<!-- CTA -->
+<section class="cta-banner">
+ <h2>Ready to accelerate your Spark workloads?</h2>
+ <p>Join the community and start using Gluten today.</p>
+ <div class="hero-buttons">
+ <a href="https://apache.github.io/gluten/" class="btn btn-primary">Read
the Docs</a>
+ <a href="/community/" class="btn btn-secondary">Join the Community</a>
+ </div>
+</section>
+
+<!-- Contributors -->
+<section class="section section-alt text-center">
+ <div class="container">
+ <h2 class="section-title">Thanks to Our Contributors</h2>
+ <p class="section-subtitle">Gluten is built by a vibrant open-source
community.</p>
+ <a href="https://github.com/apache/gluten/graphs/contributors"
target="_blank" rel="noopener">
+ <img src="/assets/images/gluten_contributors.svg" alt="Contributors"
loading="lazy" style="max-width:100%;border-radius:12px;">
+ </a>
+ </div>
+</section>
diff --git a/index.markdown b/index.markdown
deleted file mode 100644
index 06715078..00000000
--- a/index.markdown
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# Feel free to add content and custom Front Matter to this file.
-# To modify the layout, see
https://jekyllrb.com/docs/themes/#overriding-theme-defaults
-
-layout: home
----
diff --git a/index.md b/index.md
deleted file mode 100644
index c528031c..00000000
--- a/index.md
+++ /dev/null
@@ -1,182 +0,0 @@
----
-layout: default
-title: Home
-nav_order: 1
-permalink: /
-description: This site serves as a collection of documentation about the
Gluten, a plugin to Double SparkSQL's Performance
----
-# Overview
-Apache Gluten is a middle layer responsible for offloading JVM-based SQL
engines' execution to native engines.
-
-# 1 Introduction
-
-## 1.1 Problem Statement
-
-Apache Spark is a stable, mature project that has been developed for many
years. It is one of the best frameworks to scale out for processing
petabyte-scale datasets. However, the Spark community has had to address
performance challenges that require various optimizations over time. As a key
optimization in Spark 2.0, Whole Stage Code Generation is introduced to replace
Volcano Model, which achieves 2x speedup. Henceforth, most optimizations are at
query plan level. Single operator's per [...]
-
-<p align="center">
-<img src="/assets/images/spark_operator_performance.png" width="800">
-</p>
-
-On the other side, SQL engines have been researched for many years. There are
a few libraries like Clickhouse, Arrow and Velox, etc. By using features like
native implementation, columnar data format and vectorized data processing,
these libraries can outperform Spark's JVM based SQL engine. However, these
libraries only support single node execution.
-
-## 1.2 Gluten's Solution
-
-“Gluten” is Latin for glue. The main goal of Gluten project is to “glue"
native libraries with SparkSQL. Thus, we can benefit from high scalability of
Spark SQL framework and high performance of native libraries.
-
-The basic rule of Gluten's design is that we would reuse spark's whole control
flow and as many JVM code as possible but offload the compute-intensive data
processing part to native code. Here is what Gluten does:
-* Transform Spark’s whole stage physical plan to Substrait plan and send to
native
-* Offload performance-critical data processing to native library
-* Define clear JNI interfaces for native libraries
-* Switch available native backends easily
-* Reuse Spark’s distributed control flow
-* Manage data sharing between JVM and native
-* Extensible to support more native accelerators
-
-## 1.3 Target User
-
-Gluten's target user is anyone who wants to accelerate SparkSQL fundamentally.
As a plugin to Spark, Gluten doesn't require any change for dataframe API or
SQL query, but only requires user to make correct configuration.
-See Gluten configuration properties
[here](https://github.com/apache/gluten/blob/main/docs/Configuration.md).
-
-## 1.4 References
-
-You can click below links for more related information.
-- [Gluten References](/references/)
-
-# 2 Architecture
-
-The overview chart is like below. Substrait provides a well-defined
cross-language specification for data compute operations (see more details
[here](https://substrait.io/)). Spark physical plan is transformed to Substrait
plan. Then Substrait plan is passed to native through JNI call.
-On native side, the native operator chain will be built out and offloaded to
native engine. Gluten will return Columnar Batch to Spark and Spark Columnar
API (since Spark-3.0) will be used at execution time. Gluten uses Apache Arrow
data format as its basic data format, so the returned data to Spark JVM is
ArrowColumnarBatch.
-<p align="center">
-<img src="/assets/images/gluten_framework.png" width="800">
-</p>
-Currently, Gluten only supports Clickhouse backend & Velox backend. Velox is a
C++ database acceleration library which provides reusable, extensible and
high-performance data processing components. More details can be found from
[here](https://github.com/facebookincubator/velox/). Gluten can also be
extended to support more backends.
-
-There are several key components in Gluten:
-* **Query Plan Conversion**: converts Spark's physical plan to Substrait plan.
-* **Unified Memory Management**: controls native memory allocation.
-* **Columnar Shuffle**: shuffles Gluten columnar data. The shuffle service
still reuses the one in Spark core. A kind of columnar exchange operator is
implemented to support Gluten columnar data format.
-* **Fallback Mechanism**: supports falling back to Vanilla spark for
unsupported operators. Gluten ColumnarToRow (C2R) and RowToColumnar (R2C) will
convert Gluten columnar data and Spark's internal row data if needed. Both C2R
and R2C are implemented in native code as well
-* **Metrics**: collected from Gluten native engine to help identify bugs,
performance bottlenecks, etc. The metrics are displayed in Spark UI.
-* **Shim Layer**: supports multiple Spark versions. We plan to only support
Spark's latest 2 or 3 releases. Currently, Spark-3.2, Spark-3.3 & Spark-3.4
(experimental) are supported.
-
-# 3 How to Use
-
-There are two methods for utilizing Gluten. The first is to use a pre-built
JAR for a quick test of Gluten's acceleration capabilities. The second is to
compile the JAR yourself, ensuring it runs on your target platform and delivers
the best possible performance.
-
-# 3.1 Use a pre-Built Jar
-
-One way is to use released jar. Here is a simple example. Currently, only
centos7/8 and ubuntu20.04/22.04 are well supported.
-You can find a pre-built gluten release jar in [Apache Gluten
Download](https://downloads.apache.org/gluten/).
-Please be aware that the pre-built JAR is compiled using static linking via
vcpkg, based on the Intel® Xeon® Gold 6252 processor.
-It should be compatible with most operating systems, including CentOS and
Ubuntu, although performance is not guaranteed.
-For the optimal performance experience, we recommend using the 3.2 Custom
Build to compile Gluten from source tailored to your specific platform.
-
-```
-spark-shell \
- --master yarn --deploy-mode client \
- --conf spark.plugins=org.apache.gluten.GlutenPlugin \
- --conf spark.memory.offHeap.enabled=true \
- --conf spark.memory.offHeap.size=20g \
- --conf
spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager \
- --jars gluten-velox-bundle-spark3.2_2.12-centos_7_x86_64-1.2.0.jar
-```
-
-# 3.2 Custom Build
-
-To utilize Gluten with Spark, you can compile Gluten from the source and then
configure it to enable the Gluten plugin. Below is a straightforward example.
For more comprehensive instructions, please refer to the detailed guidance
provided in the corresponding backend section.
-
-```
-export gluten_jar = /PATH/TO/GLUTEN/backends-velox/target/<gluten-jar>
-spark-shell \
- --master yarn --deploy-mode client \
- --conf spark.plugins=org.apache.gluten.GlutenPlugin \
- --conf spark.memory.offHeap.enabled=true \
- --conf spark.memory.offHeap.size=20g \
- --conf spark.driver.extraClassPath=${gluten_jar} \
- --conf spark.executor.extraClassPath=${gluten_jar} \
- --conf
spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager
- ...
-```
-
-## 3.2.1 Build and install Gluten with Velox backend
-
-If you want to use Gluten **Velox** backend, see [Build with
Velox](https://apache.github.io/gluten/developers/velox-backend-build-in-docker.html)
to build and install the necessary libraries.
-You can also find more information in [Gluten with Velox
backend](https://apache.github.io/gluten/get-started/Velox.html) and
[velox](https://github.com/facebookincubator/velox).
-
-## 3.2.2 Build and install Gluten with ClickHouse backend
-
-If you want to use Gluten **ClickHouse** backend, see [Build with ClickHouse
Backend](https://apache.github.io/gluten/get-started/ClickHouse.html).
-ClickHouse backend is developed by [Kyligence](https://kyligence.io/), please
visit [Kyligence's ClickHouse](https://github.com/Kyligence/ClickHouse) for
more infomation.
-
-## 3.2.3 Build options
-
-See [Build
Parameters](https://apache.github.io/gluten/get-started/build-guide.html).
-
-
-# 4 Join the Community
-
-## Contact Us
-
-Gluten was initiated by Intel and Kyligence in 2022. Several companies are
also actively participating in the development, such as BIGO, Meituan, Alibaba
Cloud, NetEase, Baidu, Microsoft, etc. If you are interested in Gluten project,
please contact and subscribe below mailing lists for further discussion.
-
-Please see [contact us](/community/) for more information.
-
-## Source Code
-
-Please see [gluten source code](https://github.com/apache/gluten) for more
information.
-
-## How to Contribute to Gluten
-
-Please see [contributing guide](/contributing/) about how to make
contributions.
-
-## Wechat Group
-
-There is a Wechat group (in Chinese) which may be more friendly for PRC
developers/users. Due to the limitation of wechat group, please mail to
[email protected].
-
-## Slack channel
-
-For Velox backend, we recommend to use [velox
community](https://github.com/facebookincubator/velox?tab=readme-ov-file#community).
-
-
-# 5 Performance
-
-We use TPCH-like and TPCDS-like as decison support benchmarks to evaluate
Gluten's performance.
-TPCH-like is a query set for modified from [TPC-H
benchmark](http://tpc.org/tpch/default5.asp) and TPCDS-like is a query set for
modified from [TPC-DS benchmark](https://tpc.org/tpcds/default5.asp). We use
Parquet file format for Velox testing & MergeTree file format for Clickhouse
testing, compared to Parquet file format as baseline. See [Decision Support
Benchmark](https://github.com/apache/gluten/tree/main/tools/workload).
-
-## Gluten + Velox backend Performance
-
-The below test environment: single node with 3TB data on Intel® Xeon® Platinum
8592+; Spark-3.3.1 for both baseline and Gluten.
-
-The TPCH-like result (tested in Mar. 2024) shows an overall speedup of 3.34x
and up to 23.45x speedup in a single query with Gluten + Velox backend used.
-
-
-
-
-
-The TPCDS-like result (tested in Mar. 2024) shows an overall speedup of 3.02x
and up to 13.75x speedup in a single query with Gluten + Velox backend used.
-
-
-
-
-
-Notices & Disclaimers
-
-Performance varies by use, configuration and other factors. Learn more on the
[Performance Index
site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/).
Performance results are based on testing as of dates shown in configurations
and may not reflect all publicly available updates. See backup for
configuration details. No product or component can be absolutely secure. Your
costs and results may vary. Intel technologies may require enabled hardware,
soft [...]
-
-## Gluten + ClickHouse backend Performance
-
-The below testing environment: a 8-nodes AWS cluster with 1TB data;
Spark-3.1.1 for both baseline and Gluten. The Decision Support Benchmark1
result shows an average speedup of 2.12x and up to 3.48x speedup with Gluten
Clickhouse backend.
-
-
-
-# 6 Security
-
-Gluten aims to provide secure software. If you discover a vulnerability,
please report it promptly to [the project's
PMC](mailto:[email protected]) or [the ASF security
team](https://www.apache.org/security/). We appreciate your effort to help keep
the project secure.
-
-# Thanks to our contributors
-
-<a href="https://github.com/apache/gluten/graphs/contributors">
- <img src="/assets/images/gluten_contributors.svg" />
-</a>
-
diff --git a/poweredby.md b/poweredby.md
index 5419053f..3c2c0877 100644
--- a/poweredby.md
+++ b/poweredby.md
@@ -1,5 +1,5 @@
---
-layout: page
+layout: site-page
title: Powered by Gluten
nav_order: 8
permalink: /poweredby/
diff --git a/references.md b/references.md
index 46bcb7ad..ae2dd42f 100644
--- a/references.md
+++ b/references.md
@@ -1,5 +1,5 @@
---
-layout: page
+layout: site-page
title: Gluten References
nav_order: 6
permalink: /references/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]