08 2025 档案

ort onnx rust binding 试用
摘要:onnx 的rust binding 实际有好几个,当时目前来说ort 是一个比较活跃的项目,同时支持cpu 以及gpu 参考示例 是一个yolov12的推理,实际上就是标准的套路,pre处理,推理,post 处理 * cargo.toml [package] name = "yolov12" ve 阅读全文

posted @ 2025-08-31 08:00 荣锋亮 阅读(26) 评论(0) 推荐(0)

rust opencv 简单试用
摘要:社区提供了opencv 的rust binding,以下是一个简单试用 需要的安装 rust opencv 是基于ffi binding,可以参考github 中的install md 说明 参考代码 cargo.toml [package] name = "rust-opencv" version 阅读全文

posted @ 2025-08-30 08:00 荣锋亮 阅读(28) 评论(0) 推荐(0)

cargo-expand 方便查看macro 的cargo 子命令
摘要:cargo-expand 是一个cargo子命令,可以方便查看macro 实际内容,对于调试是比较方便的 参考使用 cargo expand 效果 说明 当前cargo-expand 也是有一些限制的,比如嵌套的macro 没有展开,上图也能看到,如果是大型项目可能会比较慢,实际使用还是结合场景,或 阅读全文

posted @ 2025-08-29 08:00 荣锋亮 阅读(14) 评论(0) 推荐(0)

zenoh 动态plugin 的设计简单说明
摘要:zenoh 提供了一种插件化的架构设计,对于storage plugin 可以灵活的扩展(当然其他模式也是支持的,比如rest,mqtt。。。。)以下是一个简单说明(zenoh 目前是包含了静态插件以及动态插件,主要说明动态插件) 技术实现机制 技术上zenoh 对于插件的支持是基于了libload 阅读全文

posted @ 2025-08-28 08:00 荣锋亮 阅读(23) 评论(0) 推荐(0)

samply 基于命令行的profile 工具
摘要:samply 是基于rust 开发的一个跨平台的profile 工具,使用上比较简单,同时机遇firefox profiler 进行可视化展示 支持的命令行 samply is a sampling CPU profiler. Run a command, record a CPU profile 阅读全文

posted @ 2025-08-27 08:24 荣锋亮 阅读(11) 评论(0) 推荐(0)

rust rust_embed 方便资源嵌入到rust 应用程序中的包
摘要:rust-embed是一个自定义的derive macro,可以方便的将资源嵌入到rust 引用程序中 参考使用 use rust_embed::Embed; #[derive(Embed)] #[folder = "examples/public/"] #[prefix = "prefix/"] 阅读全文

posted @ 2025-08-26 08:00 荣锋亮 阅读(12) 评论(0) 推荐(0)

rust jni 简单试用
摘要:一般对于java jni 的开发可以直接使用c,c++,或者直接使用jna 以及jnr(直接使用java 代码就可以了,机制上还是三方库包装了一些公共的方便我们使用了),基于rust开发jni 也是一个不错的选择,比如zenoh 的java sdk (zenoh 基于rust,java sdk 使用 阅读全文

posted @ 2025-08-25 08:05 荣锋亮 阅读(24) 评论(0) 推荐(0)

napi-rs vscode debug 简单说明
摘要:需要codelldb插件,同时注意napi-rs 项目应该是debug 模式的 参考配置 插件项目 "scripts": { "artifacts": "napi artifacts", "build": "napi build --platform", "build:debug": "napi b 阅读全文

posted @ 2025-08-24 08:00 荣锋亮 阅读(19) 评论(0) 推荐(0)

napi-rs 依赖三方lib的一个问题
摘要:napi-rs 是一个快速开发node addon 的rust 工具包,很多时候我们可能希望基于rust 开发的node addon, 同时集成三方c 库,此时如果在build script 中,不明确自定构建依赖的三方包那么我们在运行node addon 的时候可能会碰到莫名的问题,解决方法实际比 阅读全文

posted @ 2025-08-23 08:00 荣锋亮 阅读(17) 评论(0) 推荐(0)

基于bindgen+napi-rs 开发libeasytier-ffi node 扩展玩法简单说明
摘要:以前开发过基于libeasytier-ffi 的各种简单sdk,同时也有基于napi-ffi 开发的node 扩展,使用以及安装上并不是很方便(napi-ffi 的问题) 以下是基于napi-rs 以及bindgen 开发一个node 扩展,集成napi-rs 完整的构建,打包,部署可以方便使用 参 阅读全文

posted @ 2025-08-22 08:00 荣锋亮 阅读(15) 评论(0) 推荐(0)

通过jnr 进行native 库的调用
摘要:jnr 是一个java外部native 库使用的抽象层,可以让我们直接调用native 模块,目前jnr 提供了完整的类型映射以及内存管理能力,使用上实际与jna 基本类似,值得尝试下 easytier-ffi jnr 参考使用 定义 public class EasyTierLibraryV2 { 阅读全文

posted @ 2025-08-21 08:39 荣锋亮 阅读(11) 评论(0) 推荐(0)

flapigen-rs 基于rust 开发其他语言的通信的工具
摘要:flapigen 基于rust 开发其他语言的通信,当前实现了java 以及c 语言的处理 说明 infinyon/fluvio-client-java 就使用了此工具,值得尝试下 参考资料 https://dushistov.github.io/flapigen-rs/ https://githu 阅读全文

posted @ 2025-08-21 08:00 荣锋亮 阅读(16) 评论(0) 推荐(0)

chdb java sdk 的设计简单说明
摘要:chdb java sdk 是基于了jni 以及chdb c library 开发的,玩法上可以学习下 参考玩法 基于cmake 进行项目构建 对于jni 头文件的引用,chdb 直接复制到了项目中 jni native 方法只有一个 ChdbJniUtil.java 中暴露的 public sta 阅读全文

posted @ 2025-08-20 08:00 荣锋亮 阅读(15) 评论(0) 推荐(0)

jna 方便的java native 访问包
摘要:jna 方便的java native 访问包,提供了灵活的native 方法到java 代码的映射,基于了 包含的特性 自动进行java 到native 方法的映射,对于主要数据类型也支持通过简单映射处理 支持不部分支持java 得平台 自动进行java string 与c 的转换 支持struct 阅读全文

posted @ 2025-08-19 08:00 荣锋亮 阅读(18) 评论(0) 推荐(0)

基于jna 的libeasytier-ffi java 版本
摘要:java 的jna 是一个简化jni 开发的包,以下是基于jna开发一个libeasytier-ffi 的java 包 代码结构 如下 ├── pom.xml ├── README.md └── src ├── app.yaml ├── main │ ├── java │ │ └── com │ │ 阅读全文

posted @ 2025-08-18 08:00 荣锋亮 阅读(16) 评论(0) 推荐(0)

libeasytier-ffi ctypes 集成
摘要:主要是为了方便python 使用,基于ctypes包装一个,相比基于cffi 的安装比较方便,以下是简单说明 代码结构 代码基于flit 进行包管理 结构 ├── app.py ├── app.yaml ├── ctypes_easytier_ffi │ ├── __init__.py │ └── 阅读全文

posted @ 2025-08-17 08:00 荣锋亮 阅读(11) 评论(0) 推荐(0)

easytier-ffi csharp 操作简单说明
摘要:实际上easytier-ffi 示例代码中有一个关于csharp 操作的,只是是基于早期的DllImport 模式,实际上微软只是比较建议大家尽可能使用LibraryImport模式,一个是辅助进行代码生成,一个是内部进行了一些调用的安全处理(内部使用了一些unsafe操作,构建的时候注意开启uns 阅读全文

posted @ 2025-08-16 08:27 荣锋亮 阅读(20) 评论(0) 推荐(0)

cffi easytier-ffi python 集成试用
摘要:主要是一个简单测试,学习下cffi 集成c library 参考玩法 项目结构 ├── api_build.py // 生成代码 ├── app.py // 测试 ├── app.yaml // 测试配置 ├── easytier // 模块 │ ├── __init__.py │ ├── easy 阅读全文

posted @ 2025-08-15 08:00 荣锋亮 阅读(25) 评论(0) 推荐(0)

napi-ffi 通过ffi 调用easytier-ffi c 库包
摘要:主要是一个简单试用,使用了napi-ffi 对于easytier ffi 包进行调用 包装代码 依赖 yarn add ffi-napi ref-napi ref-struct-di easytier.js const ffi = require("ffi-napi"); const ref = r 阅读全文

posted @ 2025-08-14 08:00 荣锋亮 阅读(20) 评论(0) 推荐(0)

ebitengine/purego 通过纯go 调用c函数的包
摘要:ebitengine/purego 通过纯go 调用c函数的包 优势 跨平台方便,不依赖c 编译器 快速编译 更小的二进制应用 在运行时动态加载链接 ffi 支持,调研其他语言编译共享库 说明 不少golang 项目有使用到此包,比如chdb 的golang sdk , 对于希望调用c库的golan 阅读全文

posted @ 2025-08-13 08:00 荣锋亮 阅读(42) 评论(0) 推荐(0)

基于ebitengine/purego的easytier-ffi golang 包
摘要:以前简单基于cgo 处理过easytier-ffi 的集成,以下是通过ebitengine/purego 实现一个基于purego 的集成 方法定义 实际核心是通过ebitengine/purego 进行方法注册,代码上就是标准的purego玩法 package easytier import ( 阅读全文

posted @ 2025-08-12 08:34 荣锋亮 阅读(14) 评论(0) 推荐(0)

iggy 基于rust的高性能消息系统
摘要:iggy 基于rust的高性能消息系统,目前属于apache 孵化项目 包含的特性 高性能,基于append-only 持久化消息处理 高吞吐,低延迟 支持用户的认证与授权访问控制 支持多stream,topic,partition 支持多协议,quic,http,tcp 支持rest api 的操 阅读全文

posted @ 2025-08-11 08:00 荣锋亮 阅读(29) 评论(0) 推荐(0)

easytier golang 集成简单试用
摘要:easytier 是基于rust 编写的,官方目前提供了ffi 包,c# 以及提供了示例了对于golang 我们基于cgo 也就可以了,以下是一个简单示例,主要是测试下golang 与easytier ffi 的集成 编译ffi 我使用的是mac 系统,先编译ffi,这个比较简单直接cargo bu 阅读全文

posted @ 2025-08-10 08:00 荣锋亮 阅读(38) 评论(0) 推荐(0)

dnspyre dns benchmark 工具
摘要:dnspyre 是一个 dns benchmark 工具,提供了不少dns benchmark 模式的支持,比如udp,tcp,支持A,AAAA,CNAME,https 等查询类型,可以配置并发查询以及连接数,同时支持DoT,DoH,DoQ 等,对于输出的报告格式可以配置为json,csv 等,同时 阅读全文

posted @ 2025-08-09 08:31 荣锋亮 阅读(100) 评论(0) 推荐(0)

iggy dlopen2 插件使用简单说明
摘要:iggy 基于dlopen2 实现sink,source的插件化,机制上比较简单,核心是先基于配置,然后是使用dlopen2 约定加载插件 插件定义 对于sink 以及source 都定义了明确的接口 source定义 为了方便处理,同时基于了macro #[derive(WrapperApi)] 阅读全文

posted @ 2025-08-08 08:00 荣锋亮 阅读(23) 评论(0) 推荐(0)

dlopen2 方便进行动态链接库管理的rust 库
摘要:dlopen2 方便进行动态链接库管理的rust 库,可以实现模块的动态加载,当然也有不少其他的解决方案(libloading,zenoh的选择) 与其他库的比较 官方提供的一个对比 参考资料 https://github.com/OpenByteDev/dlopen2 https://docs.r 阅读全文

posted @ 2025-08-07 08:00 荣锋亮 阅读(21) 评论(0) 推荐(0)

orpc 构建类型安全的api
摘要:orpc 与trpc 以及ts-rest 数据类似的rest rpc 框架,但是orpc 提供了不少额外的功能 包含的特性 端到端类型安全 openapi 优先 contract 优先的开发 灵活的框架集成,包含了server,ui,client standard schema 支持(zod,Ark 阅读全文

posted @ 2025-08-06 08:26 荣锋亮 阅读(38) 评论(0) 推荐(0)

openapi-typescript openapi 转ts 类型
摘要:openapi-typescript 是一个支持openapi 3.0 以及3.1 的schema 转类型工具,同时还提供了类型安全的fetch 包含的特性 快速 类型安全 支持中间件以及auth 玩法(openapi-fetch 包) 辅助生成openapi schema 以及文档(基于装饰器以及 阅读全文

posted @ 2025-08-05 08:00 荣锋亮 阅读(38) 评论(0) 推荐(0)

ts-to-zod 基于typescript 类型以及接口生成zod schema
摘要:ts 很不错,但是很多时候我们在开发中还是需要进行schema 的check 方便业务以及数据实体的处理,zod 是一个很不错的选择(当然zod 周边也有开放标准了),ts-to-zod 是一个可以基于ts type 以及接口生成schema 的工具,当然也有一些缺陷,比如如果是通过import 的 阅读全文

posted @ 2025-08-04 08:00 荣锋亮 阅读(41) 评论(0) 推荐(0)

k3sup 快速部署k3s 的工具
摘要:k3sup 是一个快速部署k3s 的工具,k3s 没有提供类似k0s的(尽管安装k3s 比较方便,但是如果多了也是一个问题),k3sup 基于ssh可以实现快速的k3s 环境部署(尤其是部署集群环境) 支持的玩法 如下图,包含了安装以及加入 说明 要从灵活性,k3sup 可能因为早期设计的问题,对于 阅读全文

posted @ 2025-08-03 08:00 荣锋亮 阅读(28) 评论(0) 推荐(0)

rancher remotedialer 基于websocket 的tunnel 包
摘要:rancher remotedialer 基于websocket 的tunnel 包在rancher 的k3s 以及其他周边使用的比较多,是一个比较有意思同时强大的包,比如k3s 中的tunnelproxy 就是基于此包实现的 说明 rancher remotedialer还支持ha 模式,通过pe 阅读全文

posted @ 2025-08-02 09:06 荣锋亮 阅读(19) 评论(0) 推荐(0)

k0s 集成sd-wan 解决跨区域部署使用的问题
摘要:k0s 是一个很不错的边缘以及iot k8s 平台,提供了快速的部署以及管理能力,但是我们很多时候还是需要进行跨区域进行部署以及业务访问的,跨区域的网络处理一般有点费事,比如是使用vpn 还是其他解决方案是有成本以及维护的问题的,以下是一个基于sd-wan 的尝试结局方法 参考玩法 简单说明,对于不 阅读全文

posted @ 2025-08-01 08:00 荣锋亮 阅读(22) 评论(0) 推荐(0)

导航