归档
共 86 篇文章
详细介绍如何使用Rust编程语言实现对DHT11温湿度传感器的读取,包括单总线通信协议解析、时序分析和代码实现步骤
关于如何使用GPG签名Git提交的文档记录,包括生成GPG密钥对、将其与GitHub账户关联以及验证签名的步骤。
本文详细介绍了如何在 ESP32S3 上使用 Rust 语言实现 DHT11 温湿度传感器数据读取并将数据显示在 ST7789 TFT LCD 屏幕上。涵盖了 C 和 Rust 两种语言的实现方式,特别关注了 Rust 中的多核任务分配、SPI 总线配置、屏幕驱动初始化以及避免屏幕花屏等问题。文章还提供了完整的代码示例和关键技术点解析。
本文介绍了如何在资源受限的嵌入式环境中显示中文字符,特别是使用 embedded-graphics 库的方法。由于该库默认不支持中文字符,文章详细说明了如何使用 BDF 字体格式和 eg-bdf 工具来生成和使用中文字库,并提供了具体的代码示例和解决方案。
探讨在使用Rust嵌入式开发时如何解决ST7789显示屏重绘时的闪烁问题,包括调整SPI时钟频率和减小刷新区域的尝试。
介绍在Rust嵌入式开发中如何在ST7789屏幕上显示图片,包括将常见图片格式转换为BMP、TGA和QOI等支持格式的技术方法,以及解决RGB565/BGR565色彩顺序和屏幕颜色反转等常见问题的实践经验。
本文介绍了如何在 ESP32-S3 上使用 Rust 和 Ratatui 库为 ST7789 屏幕构建基于文本的用户界面(TUI),并解决了字体和显示配置中的常见问题。
本文介绍了如何在ESP32-S3上使用Rust进行ADC模数转换,以读取XY轴摇杆传感器的数据。文章详细讲解了ESP32-S3的ADC功能、引脚配置、代码实现(包括X/Y轴模拟信号读取和Z轴按键检测),以及如何使用esp-hal库进行硬件编程。
分享使用Rust的Candle框架实现腾讯轻量级翻译模型hy-mt-1.8b的经验和心得,包括对其简单架构的观察以及在GPU上运行的情况。
本文对比了使用C和Rust两种语言在ESP32-S3上控制WS2812 LED的实现方式。涵盖了硬件设置(GPIO 48)、两种语言的工具链配置,以及各自的完整代码示例。对比突出了传统ESP-IDF C开发与现代Rust嵌入式开发在开发体验、库使用和性能考虑方面的差异。
深入对比ESP32S3开发板上DHT11温湿度传感器的C语言和Rust实现,详细分析C语言版本遇到的响应缓慢问题及CPU任务调度影响,提供完整的代码示例和调试经验分享。
探讨如何使用Rust捕获视频采集卡的视频流并进行播放,包括在Linux上使用v4l2-ctl以及使用GStreamer实现播放。
详细介绍如何在Rust GPUI框架中实现圆形进度条组件,包括使用canvas API进行高级图形绘制,以及支持动画加载和进度显示两种模式。
本文介绍了在使用musl libc部署Rust项目时,通过替换默认内存分配器来大幅提升性能的方法,并提供了具体的性能对比测试数据。
记录PyTorch与Rust Candle之间的等价操作,包括缩放点积注意力(SDPA)和linspace函数的实现及代码示例。
探讨Candle框架中缺少3D算子的问题,以及如何使用2D卷积模拟3D卷积,特别是处理时间维度受限的视频数据任务。
记录使用Rust Candle框架在GPU上运行Yolov10模型时遇到的问题,特别是与topk函数实现相关的CUDA驱动程序错误。
本文深入探讨了 Tauri 框架存在的核心问题,特别是跨平台一致性问题以及与 Electron 的差异化定位,同时也分析了潜在的解决方案。
yolov10 in candle
探讨GPUI的API与TailwindCSS的相似性,重点关注UI样式的原子化设计、ElementId用法,以及Render和RenderOnce trait的区别。
探索Android上Termux的一些有用操作,包括启用文件系统访问、设置SSH服务,以及解决ADB连接问题进行文件传输。
探讨在 Tauri 框架中实现截图功能的技术难点,包括跨平台兼容性问题和数据传输效率问题,并提供相应的解决方案。
深入探讨使用 Tauri 开发截图应用时在 macOS 平台上的特殊处理,包括全屏显示问题、剪贴板操作异常及解决方案,以及快捷键和预览功能优化等关键技术细节。
详细介绍如何使用Tauri框架在macOS上开发菜单栏应用,包括创建面板窗口、系统托盘图标、面板定位和显示/隐藏控制等关键技术实现。
详细介绍如何在Rust环境中使用ONNX Runtime部署YOLOv10目标检测模型,包括模型导出、预处理、推理和后处理等关键步骤。
本文深入探讨了使用 Tauri v2 和 Rust 开发非常规窗口应用(如截图工具、悬浮窗、桌面歌词等)的技术细节,包括多窗口管理、系统权限申请(特别是 macOS 的 ScreenRecording 权限)以及权限与窗口的关联配置。
本文介绍了 MCP(Model Context Protocol)协议的概念和实现方式,详细讲解了如何使用 Rust 开发一个 MCP 服务,通过实际代码示例展示了 crate 文档查询工具的实现过程,并介绍了在 VS Code 中配置和使用 MCP Server 的方法。
本文分享了在使用 Tauri 开发桌面应用时遇到的一些实际问题和解决方案,包括动态窗口检测、菜单栏隐藏与自定义窗口控制、三大平台(Windows/macOS/Linux)的差异处理,以及 Tauri 与 Dioxus 的开发体验对比。
本文介绍了在使用 Tauri 开发桌面应用时如何正确处理动态窗口创建过程中的重复窗口检测问题,避免因窗口标签重复导致的程序崩溃,并提供了相应的错误处理方案。
本文探讨了在 Tauri 桌面应用中实现插件化开发的几种方案,包括 Webview、iframe 和 Shadow DOM 等技术,分析了各自的优缺点以及适用场景,并深入讲解了如何构建安全的沙盒环境来加载第三方不受信任的资源。
本文介绍了使用 Tauri 框架开发跨平台文件搜索工具的实践经验,探讨了如何避免直接扫描文件系统带来的性能问题,分析了 Windows 平台 Everything 工具的技术原理,并分享了基于 NTFS 文件系统 MFT 表的高效索引方案实现。
本文总结了 Rust Candle 框架中的一些杂项功能,包括自定义实现的 `masked_fill`、广播机制(`broadcast_add`)、矩阵乘法(`matmul` 与逐元素乘法的区别)以及模块容器 `ModuleList` 的替代实现。通过对比 PyTorch,分析了 Candle 在张量操作和模型加载上的差异及解决方案。
本文介绍了如何使用 Rust 实现 RMBG(移除图片背景)推理。通过加载 ONNX 模型,对输入图片进行预处理(resize、归一化),完成模型推理后生成掩码图,并基于掩码实现背景去除或透明度混合处理。最后优化了掩码反归一化算法,提升背景纯净度,适用于海报、游戏等领域。
本文介绍了 Rust 中一些不常见但实用的语法特性,包括联合体(`union`)、切片模式匹配、裸指针操作、内联汇编(`asm!`)、extern 块、loop 循环返回值、匹配模式中的 `@`、标签化循环控制、never 类型(`!`)、`#[repr]` 属性及宏的多样化调用方式。这些特性在特定场景下可显著提升开发效率和代码灵活性。
本文总结了 Rust 开发中常见的安全性陷阱,包括数值转换、整数溢出、数组边界访问、超大数组处理、滥用 `unsafe`、时间攻击(TOCTOU)、FFI 隐患及循环引用等问题。通过正确使用类型安全方法、限制资源大小、减少 `unsafe` 范围、合并原子操作及管理内存等方式,可有效避免这些问题。
本文介绍了 HEIF/HEIC 格式图片的转换方法,因其基于 HEVC 技术存在专利问题,兼容性较差。在 Rust 中可通过 `libheif-rs` 解码 HEIF 图片并借助 `image` crate 转换为其他格式。前端则可使用 `heic-convert` 实现类似功能,重点在于构造符合要求的 buffer 数据进行格式转换。
本文介绍了如何使用 fuse 来实现访问一个压缩包
介绍从零开始构建汉字手写输入法的准备工作,包括数据集选择和技术路线,使用PyTorch进行训练,Rust Candle进行推理,以及WASM进行部署。
详细介绍处理CASIA-HWDB数据集并使用PyTorch训练汉字手写识别模型的过程,包括数据集预处理和模型实现。
使用Rust Candle实现手写识别模型推理,专注于优化性能和效率以实现实时应用。
使用Rust将训练好的手写识别模型部署到WebAssembly,实现在浏览器中的高效客户端识别。
总结从零开始构建手写输入法的整个系列,讨论完整的实现过程、遇到的挑战以及项目中的经验教训。
本文介绍如何使用Rust和ONNX Runtime进行模型部署,以ResNet50为例,详细说明模型导出、加载、数据前处理、推理及后处理的全流程,并分析其优缺点。
本文介绍了Rust Candle与Pytorch在张量基本操作上的等价实现,包括张量初始化、形状操作、加减乘除运算及加速器支持,适合初学者参考。
本文对比了Rust Candle与Pytorch在张量索引、切片、连接、变异等操作上的实现差异,涵盖常见张量操作及其等价方法。
本文对比了Pytorch和Rust Candle框架在张量逐点运算上的实现差异,涵盖绝对值、三角函数、指数等常见操作。
本文对比了Pytorch和Rust Candle 框架在张量归约运算上的实现差异,涵盖求和、均值、最大值、最小值等常见操作。
本文对比了 Rust Candle 框架与 PyTorch 在神经网络层实现上的异同,涵盖顺序容器、卷积层(1D/2D 及转置卷积)、池化层(最大池化与平均池化)及常见激活函数。重点分析了两者在功能实现、参数配置及使用方式上的对应关系,并指出 Candle 暂不支持 3D 卷积等部分功能。
本文对比了 Rust Candle 框架与 PyTorch 中常见神经网络层的实现,包括归一化层(BatchNorm、LayerNorm、RMSNorm)、循环层(LSTM、GRU)、Transformer、线性层、Dropout 层、嵌入层及上采样层。总结了两者的功能对应关系及差异,并指出 Candle 在大模型推理场景下的支持情况。
本文对比了 Rust 中处理大文件的三种方法:标准库、Tokio 和内存映射(mmap)的内存使用情况。标准库一次性加载文件占用内存最高,Tokio 通过分块优化显著降低内存使用,而 mmap 利用内存映射技术几乎不占用额外内存,表现最优。
本文探讨了 Rust 中如何模拟传统面向对象语言中的函数重载(即同名函数根据参数类型或数量不同自动分派)。虽然 Rust 本身不直接支持函数重载,但通过一些技巧可以实现类似的效果。文章详细介绍了两种方法,并讨论了这些方法的优缺点。
不同编程语言中 Web 框架的选择,分析了“大而全”和“小而美”两种类型的框架在国内外开发环境中的优缺点,并结合个人经验给出了选择建议。
Rust 1.85.0 引入了 RPIT(Return Position Impl Trait)生命周期捕获的新规则。在 Rust 2024 中,所有作用域内的泛型参数(包括生命周期)默认被隐式捕获,无需显式声明。开发者可通过 `use<...>` 语法精确控制捕获的参数,避免意外捕获。这简化了代码并减少了错误,增强了表达力。新规则使 RPIT 的使用更加直观和安全。
Rust candle 模型教程
实现单文件分发你的程序
简单实现 Rust 中的重载操作符,以实现张量加法运算
MessagePack 是一种高效的二进制序列化格式。它支持多语言数据交换。相比JSON,它更紧凑,处理速度更快。
使用 Qwen 和知识库通过 RAG 构建高效 LLM 应用
Rust 并不是性能和安全性的主要优势。还有其他我们不久能忽略的一些东西
Candle 的进阶教程
小心一些,你或者也会碰到
通过 Rust + WASM 进行 npm 库开发是一个非常不错的选择。
自 10 月份 lllyasviel 公布将发布基于 Flux 的 IC-Light V2 以来,如今它已进化到了 Vary 版本。
axum 的独特之处在于它没有自己的定制中间件系统,而是与tower集成。这意味着tower的生态系统和 tower-http中间件都与 axum 一起工作。
Fish Speech 1.5 版本带来了多项改进和新功能,本文将深入评测这一新版本,并将其与 CosyVoice 进行详细对比,帮助读者了解两款产品的优劣。
如何使用 Rust 和 Candle 框架实现 MobileNetV2 神经网络,包括模型结构的搭建和前向传播的实现。
如何使用 Rust 通过 FFI 绑定 C 库,以 pdfio 为例,详细说明了从安装 C 库、生成绑定代码到二次封装和测试的整个过程。
限制请求速率是保护系统免受过载影响的关键措施之一,尤其是在面对突发流量或恶意攻击时。漏桶算法(Leaky Bucket)和令牌桶算法(Token Bucket)是两种常用的限流策略,它们各自有不同的特点和适用场景。GCRA(Generic Cell Rate Algorithm) 是漏桶算法的优化版本。
Rust 早期版本中,有两种主要的指针类型:托管 Box(Managed Box)和所有权 Box(Owned Box)。
声明宏的使用方法
Pingora 的使用
Rust candle 模型教程