Joakker
lua-json5
Rust

A json5 parser for luajit

Last updated May 1, 2026
46
Stars
8
Forks
0
Issues
0
Stars/day
Attention Score
36
Language breakdown
Rust 88.1%
Shell 7.4%
PowerShell 4.5%
โ–ธ Files click to expand
README

Json5 parser for luajit

This crate provides json5 deserialization for luajit.

Inspired and adapted from json5-rs

Also, if you haven't already, add ';?.dylib' to your package.cpath so it will be recognized by the interpreter.

Usage

You can simply require the module in your scripts and parse a string using the parse method:

local parse = require'json5'.parse
local data = [[
{
    / This is a comment /
    ecma_identifier: 'works like a charm',
    "string keys": [1,2,3], // trailing comma
}
]]
local parsed_data = parse(data)

Use with neovim

You must have cargo installed and in your $PATH

Using packer.nvim:

use {
    'Joakker/lua-json5',
    -- if you're on windows
    -- run = 'powershell ./install.ps1'
    run = './install.sh'
}

Using lazy.nvim

{ 
    'Joakker/lua-json5',
    build = './install.sh',
}

Lua 5.4

You can also build the library for lua 5.4 using the following command:

cargo build --no-default-features --features lua54 --release

Performance

Tested on neovim using the following script:

local data = [[ {"hello":"world"} ]]
local json5 = require('json5').parse
local jsondecode = vim.fn.jsondecode

local timejson5, timejson_decode = 0, 0

local aux

for _ = 1, 1000 do aux = os.clock() json5(data) timejson5 = timejson5 + (os.clock() - aux) end

for _ = 1, 1000 do aux = os.clock() json_decode(data) timejsondecode = timejsondecode + (os.clock() - aux) end

print(('json5: %.3fms'):format(time_json5)) print(('jsondecode: %.3fms'):format(timejson_decode))

On average:

json5:        0.023ms json_decode:  0.010ms

So, why should I use this instead of the builtin json_decode?

If performance is your concern, I think you're better off using the builtin function json_decode. The advantage this package has over regular json, however, is that you get json5 features, such as comments, trailing commas and more flexible string literals.

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท Joakker/lua-json5 ยท Updated daily from GitHub