A Lua binding for Apache OpenDAL: access the local filesystem, in-memory storage, S3, and 50+ services through one API.
We release the OpenDAL Lua binding independently of the
opendal crate (Rust core). For updates
and compatibility, use the Lua binding version instead of the opendal crate
version.
- User guide: https://opendal.apache.org/docs/bindings/lua
- Services & configuration: https://opendal.apache.org/docs/category/services/
- Source: https://github.com/apache/opendal/tree/main/bindings/lua
# Currently only Lua 5.2 is supported (the lua52 Cargo feature).
cd bindings/lua
cargo build --package opendal-lua --release
# Copy the native library to your Lua shared-library directory.
cp ../../target/release/libopendal_lua.so /usr/lib/lua/5.2/opendal.socd bindings/lua
luarocks makelocal opendal = require("opendal")
-- Errors are raised as Lua errors; use pcall to catch them.
local ok, op = pcall(opendal.operator.new, "fs", { root = "/tmp" })
if not ok then
print(op)
return
end
op:write("test.txt", "hello world")
print("read:", op:read("test.txt")) -- "hello world"Run the bundled example:
lua5.2 example/fs.luaFor more examples and full API documentation, see the User guide.
Contributions are welcome. Run tests with busted:
busted -o gtest test/opendal_test.luaLicensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
Apache OpenDAL, OpenDAL, and Apache are either registered trademarks or trademarks of the Apache Software Foundation.