Gossamer:一种具有真实goroutines和无暂停内存的Rust风格语言

Hacker News Top 产品

摘要

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/)

相似文章

`wgsl-rs`:Rust 到 WGSL 转译器已发布

Lobsters Hottest

`wgsl-rs`(一款从 Rust 转译到 WGSL 的工具)的 beta 版已发布至 crates.io,涵盖的工作包括运算符优先级修复、向量相等性处理、字面量后缀推断,以及基于 IR 在运行时生成 wgpu 代码等。