layoutz
372
Stars
13
Forks
5
Watchers
20
Open Issues
Apache-2.0
许可证
Scala
语言
2025-07-05
创建时间
2026-11-10
最近更新
项目能做什么
layoutz 是一个轻量、零依赖的 Scala 命令行美化与 TUI 库,用于解决业务逻辑中字符串格式化代码泛滥的问题。它提供声明式 DSL,支持 ANSI 样式、表格、图表、列表等排版原语,并内置 Elm 架构用于开发交互式终端应用,兼容 JVM、JS 和 Native。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
<div align="right">
<sub><em>part of <a href="https://github.com/mattlianje/cabinet6"><img src="https://raw.githubusercontent.com/mattlianje/cabinet6/master/pix/d4.png" width="20" align="top" hspace="4">c6</a></em></sub>
</div>
# <img src="https://raw.githubusercontent.com/mattlianje/layoutz/refs/heads/master/pix/layoutz.png" width="60"> layoutz
**Simple, beautiful CLI output**
A lightweight, zero-dep lib to build compositional ANSI strings, terminal plots,
and interactive Elm-style TUI's in Scala (JVM, JS, Native).
<p align="center">
<img src="https://raw.githubusercontent.com/mattlianje/layoutz/refs/heads/master/demos/showcase-mini.gif" width="600">
<br>
<sub><a href="examples/ShowcaseApp.scala">ShowcaseApp.scala</a></sub>
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/mattlianje/layoutz/refs/heads/master/pix/layoutz-demo-repl.png" width="600">
</p>
## Features
- Scala 2.12, 2.13, 3+ (JVM, JS, Native)
- Extend Element and easily create new primitives
- (No component library limitations)
- Elm-style TUIs
- Layout primitives: tables, trees, lists
- CJK widths
- Colors, ANSI styles, rich formatting
- Terminal charts and plots
- Widgets: text input, spinners, progress bars
- Kitty graphics support
- Built-in commands (file I/O, HTTP requests, clipboard handling)
## Installation
[](https://central.sonatype.com/artifact/xyz.matthieucourt/layoutz_3)
```scala
"xyz.matthieucourt" %% "layoutz" % "0.8.0"
```
Or try it in a REPL:
```bash
scala-cli repl --dep xyz.matthieucourt::layoutz:0.8.0
```
All you need is one import:
```scala
import layoutz._
```
## Of note...
- With LLM's, boilerplate code that formats & "pretty-prints" is cheaper than ever...
- Thus, more than ever, "string formatting code" is spawning, and polluting domain logic.
- Ultimately, layoutz is just a tiny, declarative DSL to combat this.
- On the side, layoutz also has an Elm-style runtime to bring these arbitrary Elements to life: much like a flipbook.
- The runtime has some little niceties built-in like common cmd's for file I/O, HTTP-requests, and a key input handler.
- But at the end of the day, you can use layoutz merely to structure Strings (without any of the TUI stuff).
## TUIs
Just implement [`LayoutzApp`](#interactive-apps), then call `.run`:
```scala
trait LayoutzApp[State, Message] {
def init: (State, Cmd[Message])
def update(msg: Message, state: State): (State, Cmd[Message])
def subscriptions(state: State): Sub[Message]
def view(state: State): Element
}
```
You have built-in `Cmd`/`Sub` for file I/O, HTTP, clipboard, timers and file watching...
<p align="center">
<img src="https://raw.githubusercontent.com/mattlianje/layoutz/refs/heads/master/demos/showcase-tour.gif" width="600">
<br>
<sub><a href="examples/ShowcaseApp.scala">ShowcaseApp.scala</a></sub>
</p>
## Plots
```scala
val sin = (0 to 50).map(i => (i.toDouble, math.sin(i
阅读完整原文
项目深度分析 AI 生成
大数据/流计算实时终端仪表盘 (DataOps TUI)
| 产品构想 | 基于 layoutz 和 Scala 构建面向 Kafka、Spark、Flink 或 ClickHouse 的轻量级终端实时监控与诊断工具,替代笨重的 Web 仪表盘。 |
| 核心功能 | 集群健康度图表绘制(利用 layoutz 的 terminal plots)、实时消费积压监控、节点指标流式刷新、零依赖便携式二进制分发(Scala Native) |
| 目标用户 | 数据平台工程师、SRE、大数据运维人员 |
| 难度/周期 | 中等 · 2-3 个月 · 成本:开发机器、多节点大数据测试环境成本 |
| 收费模式 | 核心工具开源,高级企业插件(LDAP 认证支持、敏感数据脱敏、商用监控系统集成)按席位/订阅收费 |
| 竞争风险 | 现有生态已有成熟的通用 Web/Grafana 方案,终端专用工具属于垂直小众需求;Scala 在 DevOps 领域普及度弱于 Go/Rust |
| 依据 | 已验证事实 |
交互式开发者脚手架与工作流工具套件 (Dev CLI Platform)
| 产品构想 | 利用 layoutz 的 Elm 架构和 Prompts (Ask helpers),封装面向企业微服务/Monorepo 研发流程的终端交互式脚手架生成工具。 |
| 核心功能 | 环境检查树状图、交互式参数配置向导、多任务进度条编排、一键生成标准模板并集成 Git/CI/CD 触发 |
| 目标用户 | 中大型工程团队的技术主管、架构师、DevOps 负责人 |
| 难度/周期 | 简单 · 1-2 个月 · 成本:个人开发时间与少量子域名/文档托管成本 |
| 收费模式 | 企业级定制服务、私有云插件市场与专属维护 SLA 支持合同 |
| 竞争风险 | 开源替代品丰富(如 Gum, Inquirer, Bubbletea),Scala 单纯作为 CLI 运行时对普通团队门槛偏高 |
| 依据 | 数据支持的判断 |
跨终端可视化分析组件扩展库 (Pro Charts & Layouts)
| 产品构想 | 为金融、量化或科研计算团队提供高阶终端图表扩展库(K线图、热力图、多轴终端分析),作为 layoutz 的商用闭源扩展包。 |
| 核心功能 | 毫秒级高频刷新图表、Kitty 图形协议深度优化、多指标组合面板、离线计算环境零外网依赖运行 |
| 目标用户 | 量化交易员、科研学者、高性能计算工程师 |
| 难度/周期 | 中等 · 2-3 个月 · 成本:算法与终端渲染适配测试设备成本 |
| 收费模式 | 商业闭源授权 License(按开发者/年度收费) |
| 竞争风险 | Scala 在现代量化与科研圈受 Python/C++ 挤压,目标用户池极小 |
| 依据 | 尚需验证的假设 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建于 2025-07-05,近 30 天仍在推送,发布过 7 个 Release |
| 社区活跃 | Star 372 / Fork 13 / Issue 20(数据支持,可自行核实) |
| 许可证 | Apache-2.0 |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。