Skip to content
/ roci Public

A minimal oci runtime implementation compatible with container managers like podman. Part of my bachelor thesis

License

Notifications You must be signed in to change notification settings

m4schini/roci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

roci

roci (Reduced OCI Runtime) is an experimental container runtime that implements only a subset of the OCI runtime specification, yet strives to maintain interoperability with container managers such as Podman. This project is part of my Bachelor's thesis and is not intended for use in a production environment.

The bachelor's thesis was graded as "very good". You can access the thesis at /thesis.

Table of Contents

Installation

  1. Go: Ensure that Go is installed on your system.

  2. Buf CLI: The project uses the buf CLI to generate protobuf code. Install it by following the instructions on the buf.build website.

For other platforms, please refer to the official installation guide.

Usage

Generating Code with buf

To generate Go code from your .proto files, use the following command:

buf generate

This command will read the configuration in your buf.yaml file and generate Go code into the appropriate directory.

Building the Project

Compiling

To compile the project without the benchmark tag, simply use the go build command:

go build -o roci

Compiling (with verbose output)

To include benchmarking code in the compilation, use the -tags flag:

go build -tags=verbose

This will compile the project with any additional code or optimizations enabled by the benchmark tag.

Benchmarking

To run benchmarks, use the provided run-benchmark.sh script located in the benchmark/ directory. This script executes the benchmark tests and outputs the results.

Run the script with:

./benchmark/run-benchmark.sh

Ensure that you have compiled the project with the benchmark tag enabled to get accurate benchmarking results.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A minimal oci runtime implementation compatible with container managers like podman. Part of my bachelor thesis

Topics

Resources

License

Stars

Watchers

Forks