asmjit

运行时直接生成原生机器码,低延迟 JIT 的底层引擎

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 基础设施 🍴 复刻 607 🐛 待处理 27 👀 关注 143
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 4630
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费(Zlib许可证)

项目数据

分类基础设施
开发团队asmjit
官网地址https://asmjit.com
定价模式🏷️完全免费
价格说明开源免费(Zlib许可证)
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Zlib
主要语言C++
技术栈/模型aarch64,asmjit,assembler,code-generation,compiler,cpp,jit,jit-compilation,x86,x86-64,x86-x64
GitHub 星标★ 4630
上线时间2014-01-28 00:00:00
代码更新2026-10-17
仓库体积10.0 MB
本站数据更新2026-10-31
维护状态较活跃
收录时间2026-10-31
浏览次数0

项目介绍

asmjit 是一个用 C++ 编写的低延迟机器码生成库,面向需要在运行时动态产出原生指令的开发者。它提供完整的汇编器、构建器和编译器抽象,支持 x86、x86-64 与 AArch64 架构,可把指令直接编码为可执行机器码,无需外部汇编器或链接器参与。核心能力包括:类型安全的指令与操作数建模、寄存器分配与指令选择等编译器基础设施、可重定位代码与标签跳转解析、以及面向 JIT 场景的轻量运行时接口。相比 LLVM 等大型编译框架,asmjit 体积小、依赖少、编译与执行开销低,适合对延迟敏感的场合。项目采用 zlib 许可,被多个高性能运行时与语言实现用作后端,社区活跃、文档较完整,是构建 JIT、DSL 解释器加速和动态代码生成工具时常用的底层组件。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-10-31 · 当前星标 ★ 4630

使用教程

⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。

难度:进阶 约 10 分钟 部署方式:库/依赖 5 步

⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。

环境要求

  • C++ 编译环境(GCC、Clang 或 MSVC 等)
  • Git(用于获取官方仓库源码)
  • 目标架构为 x86、x86-64 或 AArch64 之一
  • 能阅读 asmjit.com 上的示例与文档

安装与启动步骤

  1. 1获取源码

    从官方仓库克隆源码,或下载压缩包解压到本地目录,后续直接以该目录为包含路径。

    git clone https://github.com/asmjit/asmjit.git
  2. 2确认目录结构

    项目根目录就是包含路径;asmjit 目录下有 core、x86、a64、arm、ujit 等模块子目录。

  3. 3编写调用代码

    在工程中按需引用 core 与目标架构模块,组装、构建或编译逻辑参照官网示例编写。

  4. 4配置包含路径编译

    编译时把项目根目录加入头文件包含路径;README 未给出独立构建脚本,编译方式随你的工程而定。

    g++ -I/path/to/asmjit your_code.cpp -o your_app
  5. 5运行验证

    执行生成的可执行文件确认无报错,再对照 asmjit-testing 中的测试与基准核对行为。

    ./your_app

如何确认成功

编译无错误且可执行文件运行退出正常;如需更严格核对,可参考 asmjit-testing 中的测试工程。

常见问题

Q:需要先单独编译安装 asmjit 吗?

A:README 未提供独立安装步骤,项目根目录本身就是包含路径,把源码放进工程或加入编译器包含路径即可引用。

Q:asmjit-testing 目录要一起放进项目吗?

A:不要。README 明确说明该目录是单元测试、集成测试与基准,不应嵌入到你的项目中。

Q:支持哪些 CPU 架构?

A:支持 x86、x86-64 与 AArch64;arm 目录是 AArch32 与 AArch64 共用的 ARM API,a64 目录仅供 AArch64 后端使用。

Q:db 和 tools 目录要改吗?

A:不需要。它们是用于重新生成指令数据库与生成文件的工具,普通使用者直接使用已生成内容即可。

注意事项

  • 更多示例与文档请查阅官网 asmjit.com。
  • 项目采用 zlib 许可,商用前请阅读 LICENSE.md。
  • 源码获取与编译方式如与你的构建系统不同,以你工程的构建配置为准。

核心亮点

  • 同时覆盖 x86、x86-64 与 AArch64,跨架构 JIT 后端可复用同一套 API
  • 提供汇编器、Builder、Compiler 三层抽象,既能手写指令也能做寄存器分配与指令选择
  • 依赖极少、体积小、启动与编码开销低,适合对延迟敏感的热路径

不足之处

  • API 偏底层,需要使用者具备汇编与调用约定知识,上手门槛较高
  • 不提供完整优化器,复杂表达式与高级语言特性需自行实现
  • 文档以示例和头文件注释为主,系统性教程较少

适用场景

  • 为脚本语言或 DSL 实现 JIT 编译后端,把热点函数编译为原生代码
  • 在高频交易、数据库表达式求值等低延迟场景动态生成专用机器码
  • 开发调试器、插桩工具或二进制分析工具时进行指令级代码生成与改写

替代项目

LLVM、libjit、DynASM

上一篇:Windows-Copilot-API

下一篇:prime

同类项目推荐

extractous 开源

一条命令提取所有文档内容,快如闪电

Fast and efficient unstructured data extraction. Written in Rust with bindings for m···

★ 1784 2026-08-09
awesome-argo 开源

一站式逛遍 Argo 生态,找工具、学案例、避坑提效

A curated list of awesome projects and resources related to Argo (a CNCF graduated p···

★ 2503 2026-08-09
agent-infer 开源

基于 vLLM 的智能体推理后端,多轮工具调用更省心

vLLM based inference framework for agentic workload.

★ 105 2026-10-27
sdk 开源

给生产级 ML 装个元数据仓库,让模型资产可追踪、可复现。

Metadata store for Production ML

★ 87 2026-08-09
TransformerEngine 开源

让 Transformer 在 NVIDIA GPU 上跑得更快更省显存

A library for accelerating Transformer models on NVIDIA GPUs, including using 8-bit ···

★ 3597 2026-10-31
ai-on-openshift 开源

在OpenShift上快速部署AI工作负载,参考架构即拿即用。

AI-on-OpenShift website source code

★ 109 2026-08-09
kitops 开源

把 AI 模型打包成标准镜像,像管容器一样管 AI 资产

An open source DevOps tool from the CNCF for packaging and versioning AI/ML models, ···

★ 1438 2026-08-09
lemoncrow 开源

让编码智能体提速 25%、降价 30%,质量不变

A Complete faster runtime for coding agents. Optimize the journey, not the hop. Make···

★ 72 2026-08-09
full-stack-on-prem-cv-mlops 开源

一条命令,从Notebook到百万级CV服务

"1 config, 1 command from Jupyter Notebook to serve Millions of users", Full-stack O···

★ 56 2026-08-09