Learn Lisp/Fennel Programming Against Neovim2 months agohttps://github.com/humorless/fennel-fp-neovim关于使用Fennel进行Neovim插件开发的介绍,涵盖Lisp、函数式编程和高级编程概念。探索AI时代的新开发范式,强调交互式开发和函数式编程。全面介绍Fennel语言语法、Lisp思维及实用的函数式编程技巧。从基础到高级模式与原则的Neovim插件开发指南。探讨项目特定解决方案,如自动conjure、WebSocket和Tree-sitter集成。针对开发中的瓶颈、不确定性、复杂性和隐性知识,解析相关模式与原则。
Redis vs. BoltCache2 months agohttps://github.com/wutlu/boltcacheBoltCache是一个用Go语言构建的高性能、兼容Redis的内存缓存系统。除了TCP协议支持外,还提供RESTful API,适用于现代HTTP/JSON接口。功能包括支持WebSocket的Pub/Sub消息传递、自动键过期的TTL以及线程安全操作。支持字符串、列表、集合和哈希等复杂数据类型,并可通过Lua脚本执行自定义操作。包含基于令牌的身份验证和速率限制等安全功能。提供内置监控、健康检查以及基于YAML的配置管理。性能基准测试显示,BoltCache在每秒操作数和内存使用方面优于Redis。支持通过Docker和Kubernetes轻松部署,并提供集群支持以实现高可用性。提供全面的RESTful API,支持缓存操作、列表、集合、哈希操作以及Pub/Sub消息传递。包含开发工具,如Web客户端、Postman集合和cURL脚本,便于测试。
immer – a library of persistent and immutable data structures written in C++2 months agohttps://github.com/arximboldi/immerimmer 是一个 C++ 库,用于持久化和不可变数据结构。它为交互式和并发程序提供了更简单的架构,同时保持高性能。特性包括交互性、并发性、并行性、符合 C++ 习惯的用法以及高性能。该库可定制,并充分利用了 C++14 的特性。安装选项包括手动引入、Nix 包管理器、CMake、vcpkg 和 build2。开发需要额外工具,可通过 Nix 轻松安装,并使用 CMake 生成项目。支持测试和基准测试,结果会保存以供分析。采用 Boost Software License 1.0 许可证授权。
X-ray: a Python library for finding bad redactions in PDF documents2 months agohttps://github.com/freelawproject/x-rayx-ray 是一个用于检测PDF文档中不当涂白的Python库。不当涂白通常表现为覆盖文本的黑色矩形或高亮区域,这些内容仍可被选中并读取。该工具通过分析PDF来识别此类错误涂白,并输出包含页码、边界框和隐藏文本等细节的JSON数据。可通过pip或uv安装x-ray,支持命令行调用或作为Python模块使用。支持处理本地文件、URL链接和内存中的PDF字节流。底层实现采用PyMuPDF进行PDF解析和基于图像的矩形区域检测。该项目采用BSD开源协议,欢迎贡献代码(需签署贡献者许可协议)。版本发布通过GitHub Actions自动化实现,由版本更新和标签触发。
Un-Redactor2 months agohttps://github.com/kvthweatt/unredactor一款法证专用的PDF编辑工具,允许在涂黑框上覆盖书写内容并非恢复真实销毁的数据,而是用新信息替换涂黑框内容可精确选择涂黑框尺寸进行替换免责声明:用户需对使用该工具创建的文件承担全部法律责任警告:重新发布经篡改的文件属于违法行为
Micro QuickJS: a JavaScript engine for microcontroller2 months agohttps://github.com/bellard/mquickjsMicroQuickJS(MQuickJS)是面向嵌入式系统的JavaScript引擎,最低仅需10kB内存和约100kB只读存储器。它支持接近ES5标准的JavaScript子集,并提供严格模式禁用易错或低效语法结构。MQuickJS采用追踪垃圾回收机制,以UTF-8格式存储字符串,且虚拟机运行时不占用CPU栈空间。其交互式解释器'mqjs'支持内存限制、交互模式及字节码输出等多种选项。字节码可保存后执行,存储格式取决于CPU字节序和字长(32位或64位)。MQuickJS强制启用严格模式,禁止'with'语句、未用'var'声明的全局变量及数组空位等语法。仅支持全局'eval',禁止值装箱操作(如'new Number(1)')。数组不允许存在空位,越界赋值仅允许在数组末尾操作,否则报错。引擎对C库依赖极低,通过预置内存缓冲区替代'malloc'/'free'进行内存分配。C语言API与QuickJS类似,但需处理因压缩垃圾回收导致的对象移动问题。内置微型数学库和浮点运算模拟器,兼容无浮点单元的CPU架构。UTF-8字符串存储方案在保持JS兼容性的同时优化内存占用。标准库固化在只读存储器中,实现快速初始化与极低内存消耗。本引擎采用MIT许可证,源代码主要著作权归Fabrice Bellard与Charlie Gordon所有。
Executorch: On-device AI across mobile, embedded and edge for PyTorch2 months agohttps://github.com/pytorch/executorchExecuTorch是PyTorch推出的端侧AI模型部署解决方案,支持从智能手机到微控制器的各类设备它支持通过熟悉的PyTorch API部署大语言模型、视觉、语音和多模态模型核心特性包括原生PyTorch导出、微型运行时(仅50KB)以及12+硬件后端支持采用提前编译(AOT)技术实现模型导出、编译与执行的完整流程支持Android/iOS/Linux/Windows/macOS及嵌入式系统等多平台部署内置量化工具、内存规划器及ETDump性能分析器等开发者工具提供Python/C++/Java(Kotlin)/Swift等多语言编程接口支持自定义算子、动态形状、选择性构建等高级优化特性鼓励开发者通过GitHub提交、Discord社区交流及问题报告参与贡献采用BSD开源协议,属于PyTorch生态系统的重要组成部分
Show HN: I wrote a small lib to turn a USB gamepad into a Bluetooth one2 months agohttps://github.com/skorokithakis/bluetooth-gamepadESP32-S3固件将USB HID游戏手柄转换为BLE游戏手柄支持Seeed Studio XIAO ESP32S3作为目标设备部分控制器需使用USB-C OTG转接头或供电集线器调试日志可选UART适配器(接GPIO12/GPIO13)供电注意:部分控制器可能需要外接供电集线器通过USB-C接口进行固件烧录和开发运行时需通过OTG转接头连接控制器像普通蓝牙控制器一样配对BLE设备PlatformIO项目已启用USB Host和调试UART功能提供PlatformIO的编译和烧录命令开发环境支持快速烧录/监控使用自定义分区表(partitions_4MB.csv)通过GamepadState实现USB与BLE解耦将HID报告规范化为标准按键布局如需调整HID→标准映射可修改hid_parser.cpp调试日志可帮助识别按键触发状态核心文件:usb_host, hid_parser, gamepad_state, ble_gamepad, main.cpp
Show HN: Extract diagrams from PDF to SVG2 months agohttps://github.com/mbrukman/pdf-extract-svg从PDF文件中提取区域(如图表、算法等)为SVG格式,实现无损缩放避免缩放时常见的栅格图像格式(JPG/PNG等)像素化问题用户界面支持打开PDF、页面导航及选择区域导出为SVGSVG输出保持矢量质量,与缩放会像素化的栅格截图不同需通过系统命令安装CLI工具(pdftocairo/pdftoppm/pdfinfo)配置步骤包括创建Python虚拟环境和安装必要依赖包项目采用Apache 2.0开源协议,但非Google官方支持项目
Show HN: CineCLI – Browse and torrent movies directly from your terminal2 months agohttps://github.com/eyeblech/cinecliCineCLI已全面运行,所有功能均可正常使用。支持直接从终端浏览、查看和启动电影种子。功能包括从YTS搜索电影、查看详细电影信息以及启动磁力链接。根据画质和种子健康度自动选择最佳种子。支持Linux、macOS和Windows跨平台运行。采用'rich'库构建丰富而简洁的终端界面。智能默认设置,同时保留用户完全控制权。通过'pip install cinecli'安装(需Python 3.9+环境)。命令包括'cinecli search'查找电影,'cinecli watch'启动种子。将磁力链接处理交由操作系统注册的种子客户端执行。基于Python、Typer、Rich、Requests和YTS API构建。采用MIT许可证,开放使用、修改和改进权限。
N-Queens in Python Packaging2 months agohttps://github.com/jessekv/nqueens-in-python-packaging文章探讨了使用Python包而非传统Python代码来解决N皇后问题。棋盘上的每个位置被表示为一个名为'queen_{a-h}'的包,其版本号(1-8)代表所在行。通过'requirements.in'文件定义初始位置,并使用'uv pip compile'等包管理器将解决方案编译为'requirements.txt'。最终可通过Python脚本可视化解决方案,在棋盘上渲染出符合求解结果的皇后位置。
Show HN: ZDS – Zig Data Structures2 months agohttps://github.com/asheshvidyut/zds专为Zig设计的高性能数据结构,默认非线程安全。包含瑞士表(SIMD优化的哈希表)、红黑树、基数树、LRU缓存和B树。基准测试显示瑞士表在插入和删除操作上显著优于std.AutoHashMap。红黑树针对有序数据维护优化,处理大规模数据集时比排序动态数组快得多。基数树擅长前缀存储与检索,具有高效的结构共享特性。LRU缓存结合瑞士表实现O(1)访问,双向链表实现O(1)淘汰。B树通过可配置节点大小实现平衡,最大限度减少磁盘/内存访问。基准测试表明zds结构相较标准方案具有性能优势。
Show HN: Python SDK – forecasting with foundation time-series and tabular models2 months agohttps://github.com/S-FM/faim-python-clientFAIM SDK 提供了一套生产就绪的 Python SDK,用于基于基础模型的时间序列预测和表格推理。支持多种基础模型,包括用于时间序列的 FlowState、Amazon Chronos 2.0、TiRex,以及用于表格任务的 LimiX。特性包括:通过 Pydantic 验证实现类型安全 API、借助 Apache Arrow 序列化实现高性能、支持概率性和确定性预测。包含异步支持以实现并发请求、丰富的错误处理机制,并通过全面的错误处理实现生产就绪。提供时间序列预测和表格分类/回归任务的详细示例。支持批处理、大负载压缩及连接池优化以实现最佳性能。基于 Apache 2.0 许可证开源,包含供研究使用的引用信息。
Snitch – a friendly netstat alternative for humans2 months agohttps://github.com/karol-broda/snitchSnitch 是 netstat 的友好替代工具,通过简洁的文本用户界面(TUI)或样式化表格来检查网络连接。安装方式支持多种选择:使用 Go、Nix、Yay、Paru 或直接从发布页下载 Linux 和 macOS 版本。该工具提供实时更新的交互式 TUI 界面、一次性表格输出以及支持脚本处理的 JSON 输出功能。核心功能包括按连接类型(TCP/UDP)、状态(监听/已建立)过滤,以及可自定义的刷新间隔。Snitch 提供快捷键用于导航、排序、切换连接类型和进程监控。针对脚本场景,支持以 JSON 或 CSV 格式输出数据,并可按指定间隔流式传输 JSON 帧。通过 TOML 文件进行配置,可设置默认选项如数字输出和主题选择。Linux 系统下从 `/proc/net/*` 读取数据,可能需要 root 或 `CAP_NET_ADMIN` 权限获取完整进程信息;macOS 则通过系统 API 实现,部分操作需 sudo 权限。
Vis – Combining Modal Editing with Structural Regular Expressions2 months agohttps://github.com/martanne/visVis是一款现代化、无历史包袱的编辑器,融合了vi(m)和sam编辑器的特性。支持多光标/多选区操作和结构化正则表达式。具备完善的Unicode支持,可处理大型文件、二进制文件或单行文件。通过Lua的LPeg库使用解析表达式语法(PEGs)实现语法高亮。核心代码采用简洁的现代C语言编写,适用于资源受限环境。提供Lua API支持进程内扩展功能。专注于高效文本管理,剪贴板、双字符输入等功能由外部工具处理。计划采用客户端/服务器架构,实现外部窗口管理。不与vi(m)保持bug级兼容,旨在提供更强大的编辑功能。要求C99编译器、POSIX.1-2008标准、libtermkey库、curses库(推荐)、Lua≥5.2(可选)、LPeg≥0.12(可选)、TRE(可选)。构建方式:`./configure && make && sudo make install`。文档资源包括vis(1)手册页、Wiki、FAQ和API文档。明确不开发的功能:标签页、文件浏览器、压缩包操作、网络协议、加密功能、图形界面、VimL脚本、从右向左文本、ex模式、diff模式、vimgrep、拼写检查。贡献方向:艺术作品、主题样式、文档编写、Lua API、测试工作、软件打包、核心设计。开发者资源:《开发者概述》文档、libera网络的#vis-editor IRC频道。
Tc – Theodore Calvin's language-agnostic testing framework2 months agohttps://github.com/ahoward/tctc是一个与语言无关的测试框架,允许编写一次测试用例即可针对任何语言运行测试以目录形式组织,使用JSON输入/输出文件,仅需`jq`作为依赖项框架支持对动态值(如UUID和时间戳)的预期输出进行模式匹配可通过`TC_CUSTOM_PATTERNS`定义自定义模式以满足特殊验证需求功能包括并行测试执行、基于标签的过滤,以及TTY和非TTY输出模式其愿景强调'一次性应用'理念:测试用例永久保留,实现可自由替换提供测试生成(`tc new`)、发现(`tc list`)和元数据管理(`tc tags`)工具支持AI驱动的工作流,通过`tc-kit`可从规范自动生成测试要求bash 4.0+和`jq`环境;安装需克隆仓库并添加至PATH以避免与Unix的`tc`命令冲突
Show HN: DeepSearch – a high-performance SMB directory scanner in Rust2 months agohttps://github.com/dohuyhoang93/DeepSearchDeepSearch 是一款用 Rust 开发的高性能、跨平台文件索引与搜索工具功能特性包括现代化图形界面、浅色/深色模式、基于redb的持久化索引及增量更新通过Rust并发模型(rayon)和智能搜索能力实现性能优化支持实时搜索、内容搜索(PDF/DOCX/XLSX/纯文本)并兼容Windows/macOS/Linux系统采用索引与搜索双标签页设计,状态栏提供操作反馈初始扫描流程:浏览或粘贴文件夹路径后启动扫描搜索功能可跨所有已索引位置查询并即时显示结果重新扫描功能能在后台高效更新索引删除选项可从数据库移除指定位置及其索引提供各平台从源码编译的详细指南未来计划增强内容索引、正则表达式支持、导出功能和高级设置可通过GitHub issues或直接联系作者提交反馈
Show HN: GenresFox – Open-source, customizable new tab page extension in WASM2 months agohttps://github.com/zayokami/GenresFox现代暗色主题搭配玻璃拟态设计和流畅动画效果多搜索引擎支持(Google、Bing、DuckDuckGo)自定义搜索引擎,可添加个人搜索网址快速访问常用网站(自动获取网站图标)支持拖拽上传自定义壁纸(最大50MB/5000万像素)必应每日壁纸功能(智能缓存与预加载)基于Web Worker的高性能图像处理多语言支持(含英语、中文、日语、西班牙语、法语)无障碍功能(高对比度主题/键盘快捷键)智能缓存(图标/壁纸/处理结果)极简主义界面专注核心功能通过Chrome/Edge扩展商店一键安装(开发者模式可用)MIT协议开源项目,欢迎贡献代码
Build Android apps using Rust and iced2 months agohttps://github.com/ibaryshnikov/android-iced-example提供NativeActivity和GameActivity的示例代码示例包括android-activity的na-mainloop与andagdk-mainloop、rust-android-examples的na-winit-wgpu,以及iced集成示例大多数iced示例可通过省略场景渲染部分并设置根容器背景来运行文本输入存在未解决问题:软键盘显示/隐藏时的窗口缩放、软键盘输入语言切换、缺乏IME支持复制/粘贴及软键盘显示/隐藏功能通过Java调用实现详细说明参见android-activity crate文档环境配置需设置ANDROID_NDK_HOME和ANDROID_HOME环境变量,添加x86_64-linux-android编译目标,并使用cargo-ndk构建测试环境为Arch Linux 6.9.6 + JDK-OpenJDK 22 + 目标API 35android-activity支持用Rust构建Android应用,winit和wgpu等关键crate提供配套支持iced虽无原生Android支持,但可通过现有图形管线集成(示例已演示)
Show HN: Mactop v2.0.02 months agohttps://github.com/metaspartan/mactopmactop是一款基于终端的Apple Silicon芯片监控工具,可实时显示CPU/GPU使用率、功耗、温度等指标功能包括能效核与性能核详细数据、内存占用、网络速率、磁盘I/O、可定制的界面颜色及多种布局方案支持全系Apple Silicon芯片(M1/M2/M3等),要求macOS Monterey 12.3+系统,无需sudo权限直接调用苹果原生API可通过Homebrew安装或使用Go语言手动编译提供无界面JSON输出模式、Prometheus指标服务器和进程管理功能交互式快捷键支持导航操作、色彩主题切换、布局调整及进程终止采用MIT开源协议,欢迎通过GitHub提交贡献