rust-lxc
is a Rust bindings for LXC.
LXC is the well-known and heavily tested low-level Linux container runtime. It is in active development since 2008 and has proven itself in critical production environments world-wide. Some of its core contributors are the same people that helped to implement various well-known containerization features inside the Linux kernel.
This package implements Rust bindings for the LXC C API (liblxc
).
With rust-lxc
, you can perform the following operations:
- Create a container (
create
) - Start a container (
start
) - Stop a container (
stop
) - Delete a container (
delete
) - List all containers (
ls
) - Shutdown a container (
shutdown
)
[dependencies]
rust-lxc = { git = "https://github.com/ta2ozg/rust-lxc" }
- Rust 2024 Edition
clap
(for the CLI)anyhow
(for error handling)liblxc
(C-based library for LXC containers)
cargo test
git clone https://github.com/ta2ozg/rust-lxc.git
cd rust-lxc
To install the dependencies, run:
cargo build
After building the project, you can manage containers with the following commands:
- Create a container:
cargo run -- create --name mycontainer --template download
- Start a container:
cargo run -- start --name mycontainer
- Stop a container:
cargo run -- stop --name mycontainer
- Delete a container:
cargo run -- delete --name mycontainer
- List containers:
cargo run -- ls
- Shutdown a container:
cargo run -- shutdown --name mycontainer
lib.rs
: This file contains the core logic for interacting withliblxc
. FFI is used to interface with theliblxc
library and container operations are defined here.cli.rs
: This file defines the CLI usingclap
. Commands and arguments are parsed here.lxc.rs
: All operations related to LXC containers are defined in this file. Creating, starting, stopping, and deleting containers happen here.main.rs
: This is the entry point of the program. It processes the CLI commands and calls the appropriate functions.
The following commands are available in this project:
create
: Creates a new LXC container.delete
: Deletes an existing container.start
: Starts a container.stop
: Stops a container.ls
: Lists all available containers.shutdown
: Shuts down a container.
PRs, ideas and bug reports are welcome.
Want to extend the library or implement more endpoints? Let’s build it together!
Licensed under the MIT License.
This project is licensed under the MIT License. See the LICENSE
file for more information.