JUCE with the Zig Build System6 months agohttps://github.com/szkkng/juzi仓库'szkkng/juzi'是一个正在进行中的项目(WIP),旨在将JUCE框架与Zig构建系统集成。该项目采用MIT许可证授权,允许用户自由使用、复制、修改、合并、发布、分发、再授权及销售软件副本。许可证要求在软件的所有副本或实质性部分中必须包含版权声明和许可声明。该软件按'原样'提供,不附带任何担保,作者或版权持有人不对任何索赔或损害承担法律责任。
Zigbook Is Plagiarizing the Zigtools Playground6 months agohttps://zigtools.org/blog/zigbook-plagiarizing-playground/Zigtools的创立旨在通过ZLS、lsp-kit和Zigtools Playground等编辑器工具支持Zig社区。Zig资源Zigbook发布时宣称'零AI',但后来被发现大部分内容由AI生成且存在抄袭。Zigbook未经MIT许可协议授权,直接复制了Zigtools Playground的WASM二进制文件和JavaScript代码。Zigtools提交PR要求修正许可违规,但Zigbook关闭了该PR并删除了相关描述。Zigtools建议Zig社区避免使用Zigbook,并推荐官方学习资源。Zigtools正在筹款以支持ZLS全职维护者,并计划增强Zigtools Playground功能。
Zig Book – An open, technical and introductory book for Zig6 months agohttps://github.com/pedropark99/zig-bookPedro Duarte Faria所著《Zig语言入门:基于项目的教程》官方资源库使用Quarto出版系统和R代码编译Zig示例构建的书籍可通过Amazon和Leanpub购买PDF、电子书或实体书支持通过PayPal、Revolut或Swift直接捐赠面向初学者和经验开发者的开源技术书籍教授Zig语法、数据结构、内存分配器、测试调试等内容需要Zig编译器、R语言和Quarto进行构建两种安装策略:手动安装或使用Nix Flake创建可复现环境R脚本'dependencies.R'用于安装必要的R包使用Quarto编译书籍内容(含内部链接、引用和HTML)通过R脚本'zig_engine.R'编译执行Zig代码示例采用CC-BY 4.0知识共享署名4.0国际公共许可证
Show HN: FastLanes based integer compression in Zig6 months agohttps://github.com/steelcake/zint基于FastLanes的Zig整数压缩库通过完全矢量化的差值编码和位打包实现高性能提供针对不可信输入的安全解压API支持按块动态压缩(1024个元素),自动判断是否采用差值编码提供压缩和解压的示例用法采用Apache 2.0和MIT双重许可协议贡献代码默认接受双重许可且不附加额外条款
Zig's new plan for asynchronous programs5 months agohttps://lwn.net/SubscriberLink/1046084/4c048ee008e1c70e/Zig语言对异步I/O的新方案旨在解决函数着色问题,使代码无论使用同步还是异步I/O都能正确执行。新设计将异步操作隐藏在名为Io的通用接口后,该接口作为参数传递给需要I/O操作的函数。系统提供两种内置Io接口实现:Io.Threaded(支持可选线程的同步操作)和Io.Evented(基于事件循环的异步I/O)。库作者可以编写同时兼容同步和异步I/O的函数,无需预知用户将选择哪种实现。async()函数在使用Io.Evented时可实现并行操作,而Io.Threaded则会顺序执行。对于需要并发执行的场景(如监听连接和处理用户输入),需使用asyncConcurrent()函数。该设计延续了Zig的极简哲学,避免为异步代码引入特殊语法,充分利用现有控制流原语。Zig的异步I/O仍处于实验阶段,Io.Evented正在持续开发中,并计划支持WebAssembly。Zig正朝着1.0版本迈进,异步I/O的实现是其重要里程碑。
Zig's new plan for asynchronous programs5 months agohttps://lwn.net/SubscriberLink/1046084/6cb9e4e1fd82a90d/Zig通过名为Io的通用接口引入了一种新的异步I/O方法,解决了函数着色问题。Io接口允许函数执行I/O操作时无需在语法上区分同步和异步执行。系统提供了两种内置的Io接口实现:用于同步操作的Io.Threaded和基于事件循环的异步操作Io.Evented。库作者可以编写同时适用于同步和异步I/O的函数,而无需改变函数签名或与代码库的交互方式。Zig的方法将异步代码转化为性能优化手段,允许初始实现使用直线型代码,后续再按需优化为异步操作。Io接口包含async()等函数用于可并行操作,concurrent()函数用于必须同时运行以保证正确性的操作。Zig的设计保持了语言的极简哲学,没有为异步代码引入新语法,并允许使用try和defer等现有控制流原语。Zig的异步I/O仍在开发中,Io.Evented处于实验阶段,尚未在所有支持的操作系统上可用。这一新方法是Zig迈向1.0版本的重要进展,解决了本地代码生成之外的另一项主要优先事项。
Synadia and TigerBeetle Pledge $512,000 to the Zig Software Foundation5 months agohttps://tigerbeetle.com/blog/2025-10-25-synadia-and-tigerbeetle-pledge-512k-to-t...Synadia和TigerBeetle承诺在两年内向Zig软件基金会捐赠51.2万美元。TigerBeetle选择Zig而非C和Rust,因其简洁性、显式内存管理和安全特性。TigerBeetle的设计理念与Zig原则一致,如无隐藏内存分配和无预处理器。Zig默认启用算术检查与边界检查,在无显著性能开销下增强了安全性。Zig的简洁性与高质量使TigerBeetle能快速招聘到可迅速掌握该语言的程序员。TigerBeetle通过模糊测试和Jepsen审计等严格测试,验证了Zig在生产环境的可靠性。Zig独立的编译器后端与工具链投资为其长期性能提升奠定了基础。Andrew Kelley的领导力及Zig软件基金会的独立性是Zig成功的关键因素。Synadia与TigerBeetle联合捐赠旨在支持Zig发展,避免企业影响力干预。
Why we built Lightpanda in Zig5 months agohttps://lightpanda.io/blog/posts/why-we-built-lightpanda-in-zigLightpanda选择用Zig语言开发,因其简洁高效,避免了C++和Rust的复杂性Zig通过分配器提供显式内存管理,支持编译时元编程,并具有出色的C语言互操作性团队选择Zig而非C++,因其设计简洁,规避了C++数十年积累的复杂构建系统问题曾考虑Rust但最终放弃,因其借用检查器的使用摩擦和不安全Rust的挑战性Zig的分配器模型(特别是竞技场分配器)为浏览器级工作负载提供了精准内存控制Zig的编译时元编程特性减少了与JavaScript/V8集成时的样板代码Zig的构建系统和快速编译显著提升了开发效率Zig社区虽小但互助性强,直观的语言设计使其成为新项目的理想选择Lightpanda项目证明了Zig在浏览器等复杂系统开发中的潜力,特别适合小团队
Ziglings: Learn the Zig programming language by fixing tiny broken programs5 months agohttps://codeberg.org/ziglings/exercises/#ziglingsZiglings 是一系列故意存在缺陷的程序,旨在通过修复它们来教授 Zig 编程语言。该项目灵感来源于 Rustlings,适合初学者学习,但具备一些编程经验会更有帮助。安装需要 Zig 编译器的开发版本,该项目会跟踪最新的开发构建版本。练习涵盖 Zig 核心语言特性,如函数、错误处理、结构体等,并包含部分标准库内容。高级用法包括运行特定练习、跳过正确性检查以及调试功能。欢迎贡献代码来改进解释说明、练习题以及更地道的 Zig 用法示例。
Errors and Zig5 months agohttps://notes.eatonphil.com/errors-and-zig.html作者一直致力于使用Zig脚本记录和测试TigerBeetle的客户端库。Zig语言要求显式处理内存分配失败,因此需要大量使用`try`进行错误处理。作者探索了`try`的替代方案,如`catch unreachable`,但发现存在局限性,特别是在清理操作方面。最终发现结合自定义错误枚举与`defer`/`errdefer`的Zig错误处理机制更为有效。作者在循环和条件错误处理等场景中遇到了Zig错误处理语法的挑战。基于错误处理实践经验,作者为Zig文档贡献了相关内容。
Writing a Type-Safe Linux Perf Interface in Zig5 months agohttps://pyk.sh/blog/2025-12-11-type-safe-linux-perf-event-open-in-zig作者正在为Zig语言开发一个名为pyk/bench的微基准测试库,追求速度和精确性。为了测量超越挂钟时间的性能指标,作者使用Linux的perf_event_open系统调用来获取CPU周期数、指令数和缓存未命中数。最初使用perf_event_open的方式缺乏类型安全,涉及硬编码的结构体,在更改事件配置时需要手动更新。通过Zig的编译时(comptime)特性,开发了类型安全的方法:根据请求的事件动态生成结构体,确保编译期安全性并减少人工错误。该类型安全实现包含一个Group函数,可为事件测量创建自定义结构体,自动处理事件分组和从内核读取数据。作者向Zig标准库贡献了缺失的常量(PERF_EVENT_IOC_ID),该常量对于通过ioctl获取事件ID至关重要。最终实现为Zig提供了简洁安全的性能监控接口,利用编译时检查来防止运行时错误。
Show HN: I built the fastest RSS reader in Zig5 months agohttps://github.com/superstarryeyes/hysHys是一款用Zig编写的快速、轻量级终端RSS阅读器,通过强制每日仅一次抓取限制来防止末日刷屏行为。核心特性包括:无末日刷屏设计、极速性能、OSC 8超链接支持、OPML兼容性、多语言支持、订阅源分组、分页终端界面、搜索功能以及通用订阅源支持。安装简单,使用Homebrew即可:`brew tap superstarryeyes/tap && brew install hys`。使用方式涵盖:订阅源管理、阅读指定分组或全部内容、通过命令操作订阅源。配置文件采用JSON格式,可自定义显示设置、历史记录和网络选项。欢迎贡献代码,项目采用MIT开源协议。
Hacking LLDB for a great Zig debugging experience5 months agohttps://joel.id/hacking-lldb-for-a-great-zig-debugging-experience/由于不可读的切片、可选类型和错误联合体,在LLDB中调试Zig编程语言具有挑战性。zdb作为LLDB插件被引入,无需重建LLDB或使用Python脚本即可改善Zig调试体验。该插件为Zig类型提供可读性输出,并支持在LLDB中使用类Zig表达式。zdb通过访问LLDB内部API、重写表达式及使用偏移量表实现跨LLDB版本的兼容性。当前限制包括缺乏GUI树形展开功能,但命令行表达式运行良好。对比显示zdb在易用性与实用性之间取得了平衡,优于原生LLDB、Python脚本和zig-lldb方案。
Show HN: ZDS – Zig Data Structures5 months agohttps://github.com/asheshvidyut/zds专为Zig设计的高性能数据结构,默认非线程安全。包含瑞士表(SIMD优化的哈希表)、红黑树、基数树、LRU缓存和B树。基准测试显示瑞士表在插入和删除操作上显著优于std.AutoHashMap。红黑树针对有序数据维护优化,处理大规模数据集时比排序动态数组快得多。基数树擅长前缀存储与检索,具有高效的结构共享特性。LRU缓存结合瑞士表实现O(1)访问,双向链表实现O(1)淘汰。B树通过可配置节点大小实现平衡,最大限度减少磁盘/内存访问。基准测试表明zds结构相较标准方案具有性能优势。
Phoenix: A modern X server written from scratch in Zig5 months agohttps://git.dec05eba.com/phoenix/about/Phoenix是一个用Zig编写的新型X服务器,旨在作为Xorg的现代替代品。目前,Phoenix只能在现有X服务器中以嵌套方式运行,并支持GLX、EGL和Vulkan图形。其目标包括:简洁性(为现代应用支持X11协议子集)、安全性(利用Zig的内存安全特性)和更好的硬件支持(多显示器、可变刷新率VRR、HDR)。安全特性涵盖自动协议消息解析、应用隔离机制及交互时的权限提示。相比Xorg的改进包括:默认无画面撕裂、内置合成器、更低的垂直同步/合成延迟。Phoenix计划支持新标准(如每显示器独立DPI),并扩展X11协议以实现HDR等功能。未来计划通过原生支持或12to11桥接方式实现Wayland兼容。明确排除的目标包括:完全取代Xorg、支持X11屏幕模式、实现GrabServer或间接GLX。与X11的差异包括:不强制实现字体操作、默认使用UTF-8字符串编码(除非特殊指定)。安装需通过Zig构建命令,依赖项包括Zig 0.14.1、x11、wayland、drm和OpenGL。
Static Allocation with Zig5 months agohttps://nickmonad.blog/2025/static-allocation-with-zig-kv/用Zig语言开发兼容Redis的键值存储服务器'kv',重点采用静态内存分配技术静态内存分配通过在启动时预分配所有内存,避免运行时不可预测行为并提升性能技术难点在于根据系统需求(如并发连接数和数据处理量)确定预分配内存总量选择Zig语言因其显式内存分配特性及std.mem.Allocator接口优势实现细节涵盖连接处理、命令解析和静态分配的键值存储系统连接处理采用连接池和缓冲池机制,通过限制活动连接数确保系统健壮性命令解析利用Zig的std.heap.FixedBufferAllocator实现零拷贝的高效Redis命令解析键值存储采用非托管哈希表结构预先分配内存,需权衡空间利用率与删除操作处理提供可配置参数允许用户设置连接数、键值数量及列表大小等限制,这些参数直接影响总内存分配本项目展示了静态内存分配的权衡取舍,包括前期内存占用与运行时效率/稳定性的关系
Show HN: Zs3 – S3 server in ~1K lines of Zig, 250KB binary, zero dependencies5 months agohttps://github.com/Lulzx/zs3用约1400行Zig代码实现的S3兼容存储,零依赖。支持基本S3操作:PUT、GET、DELETE、LIST,完整支持AWS SigV4认证。与RustFS和MinIO的对比显示在代码行数、二进制大小和内存占用方面具有显著优势。功能包括分片上传、范围请求、版本控制、生命周期策略和预签名URL。专为本地开发、CI构件存储、自托管备份和学习S3内部原理设计。性能测试显示zs3在LIST等操作上比RustFS快达537倍。通过简单命令即可轻松搭建和运行服务器。支持与任何S3 SDK集成,附boto3 Python示例。安全特性包括输入验证、请求大小限制且无外部网络调用。不含TLS功能,建议使用nginx或caddy等反向代理实现HTTPS。
Zpdf: PDF text extraction in Zig – 5x faster than MuPDF5 months agohttps://github.com/Lulzx/zpdf一个用Zig语言编写的PDF文本提取库支持内存映射文件读取以实现高效大文件处理无需中间分配即可实现流式文本提取包含多种解压过滤器:FlateDecode、ASCII85、ASCIIHex、LZW、RunLength字体编码支持WinAnsi、MacRoman及ToUnicode CMap具备XRef表和流解析能力(PDF 1.5+)提供可配置的错误处理(严格或宽松模式)支持多线程并行页面提取性能基准测试显示较MuPDF有显著加速峰值吞吐量:41,000页/秒(Intel SDM平台并行测试)使用'zig build -Doptimize=ReleaseFast'构建以获得最佳效果包含CLI工具支持文本提取、文档信息查看和性能测试库结构包含解析、解压、编码等多个功能模块已实现功能涵盖XRef解析、增量PDF更新和CID字体处理采用MIT许可证
Lightpanda migrate DOM implementation to Zig4 months agohttps://lightpanda.io/blog/posts/migrating-our-dom-to-zig用基于Zig的自研DOM库zigdom替代LibDOM,解决了事件系统、自定义元素和ShadowDOM集成的痛点新实现方案全面掌控内存管理、事件处理和未来扩展,并带来小幅性能提升采用html5ever进行HTML解析,该方案集成顺畅且工作量极小通过V8快照技术预注册类型和函数,有效缩短了启动时间开发zigdom时借助AI编程助手(Claude),在DOM实现等文档完善的任务中效果显著基于Zig的统一代码库为未来功能扩展和优化提供了便利
I Made Zig Compute 33M Satellite Positions in 3 Seconds. No GPU Required4 months agohttps://atempleton.bearblog.dev/i-made-zig-compute-33-million-satellite-position...Zig语言优化的SGP4传播算法每秒可完成1100-1300万次传播计算,成为当前最快的通用实现方案Zig内置SIMD支持使向量化实现变得直观简单,避免了传统SIMD编程的复杂性开发了三种传播模式:时间批处理、卫星批处理和星座模式,分别针对不同应用场景进行优化开普勒求解器中采用多项式逼近法实现atan2函数,在保持SGP4精度要求的同时实现SIMD加速多卫星处理采用数组结构体(SoA)内存布局,显著提升缓存利用率和计算性能基准测试显示Zig实现性能超越Rust的sgp4 crate和Python的python-sgp4,在时间批处理场景优势尤为明显heyoka.py在批量处理多卫星时速度更快,但需要更复杂的配置和依赖环境实时演示系统可在约3.3秒内完成全天(约13,000颗卫星)轨道可视化未来计划将添加SDP4深空物体支持,并通过多线程技术进一步提升性能