Gossamer:一种具有真实goroutines和无暂停内存的Rust风格语言
摘要
Gossamer是一种受Rust启发的新编程语言,具有真实goroutines、基于引用计数和区域的无暂停确定性内存管理,以及配备LLVM编译的字节码虚拟机。它旨在提供富有表现力的语法,无需借用检查器或垃圾回收暂停。
暂无内容
查看缓存全文
缓存时间: 2026/06/26 20:20
# Gossamer 来源: https://gossamer-lang.org/
## 为什么选择 Gossamer
### 表达力强且清晰的语法
正向管道(`|>`)、默认不可变,以及仅有一种明显的方式做事情。数据从上到下流动,与你编写时的顺序一致——而不是从内到外的嵌套。
### 自动内存管理,无 GC 暂停
确定性引用计数配合 `arena { }` 区域,在内存使用完毕后立即回收。没有借用检查器,没有生命周期,也没有全停顿的垃圾回收器。
### 真正的 goroutines,无色函数
`go` 和带类型的 channel 基于 M:N 调度器。阻塞调用只暂停 goroutine,而不是线程。没有 `async`,没有 `await`,没有函数着色问题。
### 运行它,或发布它
一个字节码虚拟机和 REPL 用于快速迭代;发布时通过 LLVM 生成单一、无依赖的原生二进制。同一门语言,两种可选的运行层次。
### 熟悉的类型,更少的意外
`Result` / `Option` / `?`,穷尽性 `match`,trait,泛型,且没有 `null`。如果你熟悉 Rust、Go 或 F#,你几乎可以直接读懂它。
### 开箱即用,可通过 Rust 扩展
广泛的标準库——HTTP、JSON、加密、SQL、压缩等——以及一条清晰的路径,让你在需要时降级到安全的 Rust。
## 几行代码就看明白
在任何示例上点击**运行**——它直接在浏览器中执行,无需安装。Gossamer 的 VM 被编译为 WebAssembly (https://gossamer-lang.org/docs/wasm/)。
```
fn double(x: i64) -> i64 { x * 2 }
fn add(a: i64, b: i64) -> i64 { a + b }
fn clamp(lo: i64, hi: i64, x: i64) -> i64 {
if x < lo { lo }
else if x > hi { hi }
else { x }
}
fn main() {
let n = 3 |> double |> add(10) |> clamp(0, 100)
println!("answer: {}", n)
}
```
## 从其他语言迁移
简短、专注的指南,将你已经掌握的知识映射到 Gossamer。
## 快速开始
编写一个 `.gos` 文件,然后使用 `gos` 工具链运行它——迭代过程中无需构建步骤:
```
$ gos run hello.gos
hello, gossamer
$ gos build --release hello.gos # 生成一个原生二进制,可直接发布
```
支持 Linux(x86_64, aarch64, armv7)、macOS(Intel & Apple Silicon)和 Windows(x86_64)。
安装 → (https://gossamer-lang.org/docs/install/)
阅读文档 → (https://gossamer-lang.org/docs/)
相似文章
Goose: 实验性语言,比 C++ 快 1.16 倍,比安全 Rust 快 1.12 倍,内存安全
Goose 是一种实验性的内存安全系统编程语言,声称比 C++ 和 Rust 更快,同时使用更少的内存,没有分配器或垃圾回收器。
rust-glancer:一个专注于低内存使用的 Rust 替代 LSP
介绍 rust-glancer,一个专注于低内存使用的 Rust 替代语言服务器协议实现,特色是重启后立即索引以及在老硬件上更好的性能。
元垃圾回收:使用OCaml的垃圾回收器来回收Rust的内存
Soteria Rust是一个用于验证Rust程序的符号执行工具,它使用OCaml的垃圾回收器来管理其Tree Borrows别名模型的内存,实现了10倍的加速,并将时间复杂度从二次降低到线性。
第二个黄金尖钉:跨越 Valen/Rust 边界的内存安全
Verdagon 详细介绍了实验性编程语言 Valen 如何在 Valen/Rust 边界上强制保证内存安全,通过实现分组借用(无需共享异或可变的借用检查),并能无缝直接调用 Rust 函数。
`wgsl-rs`:Rust 到 WGSL 转译器已发布
`wgsl-rs`(一款从 Rust 转译到 WGSL 的工具)的 beta 版已发布至 crates.io,涵盖的工作包括运算符优先级修复、向量相等性处理、字面量后缀推断,以及基于 IR 在运行时生成 wgpu 代码等。