1 stable release
Uses new Rust 2024
new 1.0.0 | May 9, 2025 |
---|
#2371 in Command line utilities
120 downloads per month
11KB
181 lines
π¦ rust-lxc
rust-lxc
is a Rust bindings for LXC.
Why Rust Bindings for liblxc?
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
).
Features
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
)
Add to your Cargo.toml
[dependencies]
rust-lxc = { git = "https://github.com/ta2ozg/rust-lxc" }
Dependencies
- Rust 2024 Edition
clap
(for the CLI)anyhow
(for error handling)liblxc
(C-based library for LXC containers)
Testing
cargo test
1. Clone the project
git clone https://github.com/ta2ozg/rust-lxc.git
cd rust-lxc
2. Install dependencies
To install the dependencies, run:
cargo build
3. Use the commands
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
Understanding the Code
File Structure
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.
Commands
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.
Contributing
PRs, ideas and bug reports are welcome.
Want to extend the library or implement more endpoints? Letβs build it together!
π License
Licensed under the MIT License.
This project is licensed under the MIT License. See the LICENSE
file for more information.
Dependencies
~1.2β1.8MB
~33K SLoC