<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>zhenyi-base Poster</title>
<style>
:root {
--bg-color: #0B0F19;
--card-bg: rgba(255, 255, 255, 0.05);
--text-primary: #F8FAFC;
--text-secondary: #94A3B8;
--accent-cyan: #06B6D4;
--accent-purple: #8B5CF6;
--accent-blue: #3B82F6;
--gradient-text: linear-gradient(135deg, #06B6D4 0%, #8B5CF6 100%);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
background-color: var(--bg-color);
color: var(--text-primary);
width: 720px;
height: 1080px;
overflow: hidden;
display: flex;
flex-direction: column;
padding: 40px;
position: relative;
}
/* Background Decoration */
.bg-blur {
position: absolute;
width: 400px;
height: 400px;
border-radius: 50%;
filter: blur(100px);
opacity: 0.4;
z-index: 0;
}
.blur-1 { top: -100px; left: -100px; background: var(--accent-purple); }
.blur-2 { bottom: -100px; right: -100px; background: var(--accent-cyan); }
/* Header */
header {
position: relative;
z-index: 1;
margin-bottom: 30px;
text-align: left;
border-bottom: 1px solid rgba(255,255,255,0.1);
padding-bottom: 20px;
}
h1 {
font-size: 56px;
font-weight: 800;
letter-spacing: -1px;
background: var(--gradient-text);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin-bottom: 8px;
line-height: 1.1;
}
.subtitle {
font-size: 24px;
color: var(--text-secondary);
font-weight: 500;
display: flex;
align-items: center;
gap: 15px;
}
.badge {
display: inline-block;
padding: 4px 10px;
background: rgba(6, 182, 212, 0.15);
color: var(--accent-cyan);
border-radius: 4px;
font-size: 14px;
font-weight: 600;
text-transform: uppercase;
border: 1px solid rgba(6, 182, 212, 0.3);
}
/* Main Grid */
.main-grid {
display: grid;
grid-template-columns: 1fr;
gap: 20px;
position: relative;
z-index: 1;
flex: 1;
}
/* Feature Highlights */
.features {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 15px;
}
.feature-item {
background: var(--card-bg);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 12px;
padding: 15px;
text-align: center;
backdrop-filter: blur(10px);
}
.feature-icon {
font-size: 24px;
margin-bottom: 8px;
color: var(--accent-cyan);
}
.feature-title {
font-size: 16px;
font-weight: 700;
color: var(--text-primary);
margin-bottom: 4px;
}
.feature-desc {
font-size: 12px;
color: var(--text-secondary);
}
/* Performance Section */
.section-title {
font-size: 18px;
font-weight: 700;
color: var(--text-secondary);
margin-bottom: 12px;
display: flex;
align-items: center;
gap: 8px;
}
.section-title::before {
content: '';
display: block;
width: 4px;
height: 16px;
background: var(--gradient-text);
border-radius: 2px;
}
.perf-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
}
.perf-card {
background: linear-gradient(145deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
border: 1px solid rgba(139, 92, 246, 0.3);
border-radius: 12px;
padding: 15px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.perf-label {
font-size: 14px;
color: var(--text-secondary);
margin-bottom: 5px;
}
.perf-value {
font-size: 32px;
font-weight: 800;
color: var(--accent-purple);
}
.perf-unit {
font-size: 14px;
font-weight: 500;
color: var(--text-secondary);
margin-left: 4px;
}
/* Code Block */
.code-block {
background: #0d1117;
border-radius: 12px;
padding: 20px;
font-family: 'JetBrains Mono', monospace;
font-size: 13px;
line-height: 1.6;
border: 1px solid rgba(255,255,255,0.1);
position: relative;
overflow: hidden;
}
.code-header {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 32px;
background: rgba(255,255,255,0.05);
display: flex;
align-items: center;
padding-left: 12px;
gap: 6px;
}
.dot { width: 10px; height: 10px; border-radius: 50%; }
.red { background: #FF5F56; }
.yellow { background: #FFBD2E; }
.green { background: #27C93F; }
.code-content {
margin-top: 24px;
}
.k-keyword { color: #ff79c6; }
.k-func { color: #8be9fd; }
.k-string { color: #f1fa8c; }
.k-comment { color: #6272a4; font-style: italic; }
.k-package { color: #50fa7b; }
/* Scenarios */
.scenarios {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.scenario-tag {
background: rgba(59, 130, 246, 0.1);
color: var(--accent-blue);
padding: 6px 12px;
border-radius: 20px;
font-size: 13px;
font-weight: 500;
border: 1px solid rgba(59, 130, 246, 0.2);
}
/* Footer */
footer {
margin-top: auto;
border-top: 1px solid rgba(255,255,255,0.1);
padding-top: 20px;
display: flex;
justify-content: space-between;
align-items: center;
position: relative;
z-index: 1;
}
.install-cmd {
background: #000;
padding: 10px 15px;
border-radius: 8px;
font-family: monospace;
font-size: 14px;
color: #E2E8F0;
border: 1px solid #333;
}
.link-info {
text-align: right;
font-size: 14px;
color: var(--text-secondary);
}
.link-info a {
color: var(--accent-cyan);
text-decoration: none;
}
</style>
</head>
<body>
<!-- Background Effects -->
<div class="bg-blur blur-1"></div>
<div class="bg-blur blur-2"></div>
<header>
<h1>zhenyi-base</h1>
<div class="subtitle">
<span>高性能 Go 基础库</span>
<span class="badge">MIT 协议</span>
<span class="badge">零分配</span>
</div>
</header>
<div class="main-grid">
<!-- Design Philosophy -->
<div class="features">
<div class="feature-item">
<div class="feature-icon">⚡️</div>
<div class="feature-title">按需引入</div>
<div class="feature-desc">模块化设计,只编译你用到的代码</div>
</div>
<div class="feature-item">
<div class="feature-icon">🚀</div>
<div class="feature-title">零冗余依赖</div>
<div class="feature-desc">无锁队列、对象池,纯净无侵入</div>
</div>
<div class="feature-item">
<div class="feature-icon">🛠️</div>
<div class="feature-title">协议无缝切换</div>
<div class="feature-desc">TCP / WebSocket / KCP 业务代码零修改</div>
</div>
</div>
<!-- Performance Stats -->
<div>
<div class="section-title">压测数据 (M3 / Go 1.24)</div>
<div class="perf-grid">
<div class="perf-card">
<div class="perf-label">TCP Echo 吞吐</div>
<div>
<span class="perf-value">77.8</span>
<span class="perf-unit">万 msg/s</span>
</div>
<div class="perf-desc" style="font-size: 12px; opacity: 0.7; margin-top: 5px;">1000 连接</div>
</div>
<div class="perf-card" style="border-color: rgba(6, 182, 212, 0.3);">
<div class="perf-label">MPSC 队列延迟</div>
<div>
<span class="perf-value" style="color: var(--accent-cyan);">16.7</span>
<span class="perf-unit">ns/op</span>
</div>
<div class="perf-desc" style="font-size: 12px; opacity: 0.7; margin-top: 5px;">0 allocs</div>
</div>
</div>
</div>
<!-- Code Example -->
<div>
<div class="section-title">3步启动 TCP 服务</div>
<div class="code-block">
<div class="code-header">
<div class="dot red"></div>
<div class="dot yellow"></div>
<div class="dot green"></div>
</div>
<div class="code-content">
<span class="k-package">package</span> main
<span class="k-keyword">import</span> <span class="k-string">"github.com/aiyang-zh/zhenyi-base/zserver"</span>
<span class="k-keyword">func</span> <span class="k-func">main</span>() {
<span class="k-comment">// 1. 创建服务</span>
s := zserver.<span class="k-func">New</span>(zserver.<span class="k-func">WithAddr</span>(<span class="k-string">":9001"</span>))
<span class="k-comment">// 2. 注册处理器</span>
s.<span class="k-func">Handle</span>(<span class="k-string">1</span>, <span class="k-keyword">func</span>(req *zserver.Request) {
req.<span class="k-func">Reply</span>(<span class="k-string">1</span>, req.<span class="k-func">Data</span>()) <span class="k-comment">// Echo 回复</span>
})
<span class="k-comment">// 3. 运行</span>
s.<span class="k-func">Run</span>()
}
</div>
</div>
</div>
<!-- Scenarios -->
<div>
<div class="section-title">适用场景</div>
<div class="scenarios">
<div class="scenario-tag">长连接网关</div>
<div class="scenario-tag">游戏服务器</div>
<div class="scenario-tag">实时推送</div>
<div class="scenario-tag">高吞吐 API</div>
<div class="scenario-tag">弱网传输 (KCP)</div>
<div class="scenario-tag">对象池/队列复用</div>
</div>
</div>
</div>
<footer>
<div class="install-cmd">
$ go get github.com/aiyang-zh/zhenyi-base
</div>
<div class="link-info">
<div>文档: <a href="#">zhenyi-site.pages.dev</a></div>
<div style="font-size: 12px; margin-top: 4px; color: #64748B;">开源初期,欢迎共建反馈</div>
</div>
</footer>
</body>
</html>
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!