1作者: chaokunyang20 天前原帖
序列化框架的一些有趣数据:在嵌套对象上比 JSON/Protobuf 快 10-20 倍。 技术方案:编译时代码生成(无反射),紧凑的二进制协议与元打包,适合现代 CPU 的小端布局。 其他快速序列化器所没有的独特功能: - 跨语言支持,无需 IDL 文件(Rust ↔ Python/Java/Go) - Trait 对象序列化(Box<dyn Trait>) - 自动处理循环引用 - 无需协调的模式演进 欢迎讨论设计权衡。 基准测试: https://fory.apache.org/docs/benchmarks/rust
1作者: smatthewaf20 天前原帖
我一直在进行一个项目,该项目涉及多个代码库,所有代码库都需要在多种地图坐标类型之间进行转换。因此,我制作了一个 NPM 模块,允许您解析并在十进制度、度分和度分秒坐标类型之间进行转换。小众吗?是的。实用吗?也是的(我希望如此)!
2作者: sixddc20 天前原帖
构建了一个基于Lua的原生Scratch 3.0运行时,可以在不使用浏览器的情况下运行.sb3项目。 <p>为什么要这样做?浏览器的沙盒限制阻止了对硬件功能(如触觉反馈、传感器、精细性能控制)的访问。原生运行时可以直接访问硬件,并允许你部署到游戏主机、手持设备和嵌入式设备。此外,这也意味着生成的二进制文件要小得多(LÖVE约为7MB,而Electron则为50-100MB)。 <p>它是如何工作的: <p>- Scratch模块编译为中间表示(IR),然后进行优化,最后生成Lua代码。 <p>- LuaJIT执行编译后的代码。 <p>- 基于协程的线程处理以支持并发脚本。 <p>- 懒加载和LRU缓存用于内存管理。 <p>- 通过resvg FFI支持SVG。 <p>与Scratch 3.0模块大约有100%的兼容性。需要JavaScript的扩展(如音乐、文本转语音、视频感应)将无法使用,但核心模块是可用的。 <p>基于LÖVE框架构建,因此它是跨平台的(桌面、移动、游戏设备)。 <p>虽然仍有一些不完善之处(用户输入尚未实现,云变量仅在本地工作),但它今天可以运行真实的Scratch项目。
1作者: drakyoko20 天前原帖
嘿,HN, 在这个周末,我开发了一个小的 VS Code 插件,它可以让你在 Go 表格测试中运行/调试单个子测试——这是我一直希望官方插件能够支持的功能。 与我见过的其他插件不同,它不仅仅依赖正则表达式和假设的字段名称,而是通过跟踪 testing.T 的引用进行了一些结构分析。 如果你是 Go 开发者,并且觉得这个插件有用,我非常希望听到你的反馈!