A Lua binding for Apache OpenDAL: access the local filesystem, in-memory storage, S3, and 50+ services through one API.
Note: This binding has its own independent version number, which may differ from the Rust core 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.