登录 注册
开发者工具数据分析与数据处理内容创作与媒体工具 clidslfunctional-programmingscalatui
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
[![Maven Central](https://img.shields.io/maven-central/v/xyz.matthieucourt/layoutz_3)](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 为准(涉及依赖安装与环境配置,对新手门槛较高)。