#lua #bytecode #byte #format #version #endianness #different

lunify

一个用于将Lua字节码转换为不同版本和格式的crate

6个版本 (3个稳定版)

1.1.0 2023年7月10日
1.0.1 2023年1月10日
1.0.0 2022年12月5日
0.1.2 2022年9月22日

#1969编码

Download history 20/week @ 2024-04-16 23/week @ 2024-04-23 29/week @ 2024-04-30 30/week @ 2024-05-07 38/week @ 2024-05-14 11/week @ 2024-05-21 25/week @ 2024-05-28 1/week @ 2024-06-04 6/week @ 2024-06-11 6/week @ 2024-06-18 8/week @ 2024-07-02 14/week @ 2024-07-23 52/week @ 2024-07-30

每月66次下载

MIT许可证

160KB
3.5K SLoC

统一

Tests Code Quality Test Coverage License: MIT crates.io

一个用于将Lua字节码转换为不同版本和格式的crate。

目前支持Lua 5.0和Lua 5.1作为输入。

示例

use lunify::{Format, LunifyError, Endianness, BitWidth, unify};

// Lua byte code in any suppored format
let input_bytes = include_bytes!("../test_files/lua50.luab");

// Desired output format. May specify pointer width, endianness, sizes of datatypes, ...
let output_format = Format {
    endianness: Endianness::Little,
    // Convert from byte code that runs on a 32 bit machine to byte code that runs on a 64 bit machine
    size_t_width: BitWidth::Bit64,
    ..Format::default()
};

// Convert input bytes to the desired format
let output_bytes = unify(input_bytes, &output_format, &Default::default());

依赖关系

~0–1.3MB
~17K SLoC