ABI 与调用约定
ABI 是编译器与操作系统之间的契约。本文讲解 System V AMD64 的寄存器与栈传递规则、参数分类算法与结构体拆分、返回值与变参约定,对比 Windows x64 与 ARM64 的差异,并给出跨语言 FFI、栈对齐、名字修饰与常见踩坑的排查手段。
tag
ABI 是编译器与操作系统之间的契约。本文讲解 System V AMD64 的寄存器与栈传递规则、参数分类算法与结构体拆分、返回值与变参约定,对比 Windows x64 与 ARM64 的差异,并给出跨语言 FFI、栈对齐、名字修饰与常见踩坑的排查手段。
用 Zig 构建插件系统:std.DynLib 运行时加载共享库、导出 C ABI 接口、版本化契约与 ABI 校验、插件注册表与生命周期管理、符号可见性控制、免重启热重载、.so/.dylib/.dll 跨平台差异,以及在同地址空间下如何做错误隔离与崩溃防护。
Flutter FFI 全指南:dart:ffi 基础、C ABI 与内存指针、手写 binding vs ffigen、字符串与结构体传递、Isolate 异步调用、Rust 集成与打包安全实践。
Rust 嵌入式与 FFI 完全指南:no_std 裸机开发、embedded-hal 硬件抽象、ESP32/STM32 实战、C 与 Rust 双向互操作(extern C/绑定生成/PyO3)、FFI 安全边界与内存布局。
Python 调用 C/C++ 的四种方案全对比:ctypes 动态库调用、cffi 安全绑定、Cython 编译加速、PyO3/Rust 扩展,含性能基准、GIL 释放、构建配置与实战案例。
Erlang 与 C 互操作实战:Port 模型与消息机制、Port 外设驱动(Driver)开发、NIF 接口与生命周期管理、NIF 资源对象(Resource)、NIF 性能陷阱(调度器阻塞)、线程安全与并发 NIF、NIF 与 Port 选型、常见问题排查(内存泄漏/崩溃)。
深入理解 LuaJIT 内部原理:解释器与 Trace 编译器两层架构、热点检测与 Side Trace、Guard 回退机制、FFI 的 JIT 加速路径、NYI 回退原因,以及编写可 JIT 编译高性能 Lua 代码的工程实践。
本文进阶 Zig 的 C 互操作能力:std.DynLib 动态库加载、回调函数与上下文、extern/packed struct 内存布局对齐、与 C++ ABI 的桥接,以及 zig translate-c 头文件翻译的实战与限制。
Flutter 自定义插件开发:从 Package 到 Plugin,pub.dev 发布流程,Dart FFI 扩展,代码生成与本地插件接入。
Flutter 跨平台原生交互全解:MethodChannel、EventChannel、BasicMessageChannel、FFI、Pigeon 代码生成,以及自定义插件开发。
Rust AI 开发生态深度解析:HuggingFace Candle 纯 Rust 推理框架、llm.rs 本地大模型部署、ONNX Runtime、Rust 与 Python FFI 互操作、向量数据库 Qdrant 集成,以及 AI 推理性能优化策略。
LuaJIT 的 FFI 库允许 Lua 直接调用 C 函数与操作 C 数据结构,无需编写绑定层。本文讲解 FFI 的核心用法、性能优势、与 C API 的对比,以及 OpenResty 中的典型应用。