• Stars
    star
    261
  • Rank 156,630 (Top 4 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created over 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

📦 🐳 0-dependency Container-based Package Manager using SAT solver and QLearning

luet - Container-based Package manager

Docker Repository on Quay Build and release on push GoDoc codecov

Luet is a multi-platform Package Manager based off from containers - it uses Docker (and others) to build packages. It has zero dependencies and it is well suitable for "from scratch" environments. It can also version entire rootfs and enables delivery of OTA-alike updates, making it a perfect fit for the Edge computing era and IoT embedded devices.

It offers a simple specfile format in YAML notation to define both packages and rootfs. As it is based on containers, it can be also used to build stages for Linux From Scratch installations and it can build and track updates for those systems.

It is written entirely in Golang and where used as package manager, it can run in from scratch environment, with zero dependencies.

asciicast

In a glance

Install

To install luet, you can grab a release on the Release page or to install it in your system:

$ curl https://luet.io/install.sh | sudo sh
$ luet search ...
$ luet install ..
$ luet --help

Build from source

$ git clone https://github.com/mudler/luet.git
$ cd luet
$ make build

Documentation

Documentation is available, or run luet --help, any subcommand is documented as well, try e.g.: luet build --help.

Dependency solving

Luet uses SAT and Reinforcement learning engine for dependency solving. It encodes the package requirements into a SAT problem, using gophersat to solve the dependency tree and give a concrete model as result.

SAT encoding

Each package and its constraints are encoded and built around OPIUM. Additionally, Luet treats also selectors seamlessly while building the model, adding ALO ( At least one ) and AMO ( At most one ) rules to guarantee coherence within the installed system.

Reinforcement learning

Luet also implements a small and portable qlearning agent that will try to solve conflict on your behalf when they arises while trying to validate your queries against the system model.

To leverage it, simply pass --solver-type qlearning to the subcommands that supports it ( you can check out by invoking --help ).

Authors

Luet is here thanks to our amazing contributors!.

Luet was originally created by Ettore Di Giacinto, [email protected], [email protected].

License

Luet is distributed under the terms of GPLv3, check out the LICENSE file.

More Repositories

1

LocalAI

🤖 The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement for OpenAI, running on consumer-grade hardware. No GPU required. Runs gguf, transformers, diffusers and many more models architectures. Features: Generate Text, Audio, Video, Images, Voice Cloning, Distributed inference
C++
24,299
star
2

edgevpn

⛵ The immutable, decentralized, statically built p2p VPN without any central server and automatic discovery! Create decentralized introspectable tunnels over p2p with shared tokens
Go
574
star
3

LocalAGI

100% Local AGI with LocalAI
Python
392
star
4

poco

🚢 poCo - portable Containers. Create statically linked, portable binaries from container images (daemonless)
Go
84
star
5

yip

📌 Yaml Instructions Processor - Simply applies a cloud-init style yaml file to the system
Go
70
star
6

golauncher

🚀 Highly extensible, customizable application launcher and window switcher written in less than 300 lines of Golang and fyne
Go
63
star
7

docker-companion

squash and unpack Docker images, in Golang
Go
42
star
8

edgevpn-gui

Graphical front-end for EdgeVPN
Go
23
star
9

anagent

Minimalistic, pluggable Golang evloop/timer handler with dependency-injection
Go
15
star
10

go-stable-diffusion

C++
15
star
11

GitInsight

Predict your github contributions using Bayesian inference and Markov chain with perl and PDL
Perl
9
star
12

gh-k8s

Run multiple-node, decentralized k3s clusters on Github action runners for test and development!
Shell
9
star
13

go-pluggable

🍱 go-pluggable is a light Bus-event driven plugin library for Golang
Go
8
star
14

linuxbundles

🐧 Standalone, local-runnable binaries of popular linux distributions
Shell
8
star
15

vhproxy

VHProxy public git repository
Perl
7
star
16

luet-k8s

Luet extension to build packages on kubernetes
Go
7
star
17

go-piper

C++
7
star
18

WebService-GialloZafferano

Perl interface to GialloZafferano.it website to find cooking recipes
Perl
5
star
19

entities

🔏 Declarative modern identity manager for UNIX systems in Go
Go
5
star
20

go-ggllm.cpp

Golang bindings for ggllm.cpp
C++
5
star
21

img-controller

Kubernetes CRD controller to build docker images with img
Go
4
star
22

http

"http" IRC shellcode
Perl
4
star
23

docker-sabayon-base

Sabayon-base docker repository
PLpgSQL
3
star
24

App-whatthecommit

Add a prepare-commit-msg to your git repository that uses whatthecommit.com to generate random commit messages
Perl
3
star
25

go-nodepair

Golang library to handle transparent remote node pairing
Go
3
star
26

go-kdetect

golang kernel driver detector
Go
3
star
27

WebApp-GitInsight

WebApp in mojolicious for GitInsight
CSS
3
star
28

LocalAI-examples

LocalAI examples
Jupyter Notebook
3
star
29

blog

My blog, now migrated to hugo on github
HTML
2
star
30

docker-sabayon-spinbase-amd64

Sabayon spinbase docker repository
Shell
2
star
31

ekcp

🌠 Ephemeral kubernetes cluster provider
JavaScript
2
star
32

Algorithm-Sat-Backtracking

A switchable Pure Perl SAT solver with backtracking
Perl
2
star
33

docker-sabayon-builder-amd64

Sabayon builder base image docker repository
Shell
2
star
34

boson

a docker polling job processor
Go
2
star
35

gluedd-cli

Deepdetect jpeg streamer predictor
Go
2
star
36

go-processmanager

Go
2
star
37

localai-github-action

LocalAI github action
2
star
38

Algorithm-QLearning

Algorithm::QLearning - Reinforcement Learning done in Pure Perl
Perl
1
star
39

go-udp-proxy

Little udp proxy needed just releases with binaries built with CI - not my code, found on the net
Go
1
star
40

k8s-resource-scheduler

🏯 Simple (toy/experimental) CPU/Memory pod scheduler
Go
1
star
41

android-builds-recipes

🐳 Android builds recipes for various devices/ROM with docker
Shell
1
star
42

go-mirror-redirector

Simple mirror redirector in golang
Go
1
star
43

fleet-sample

Dockerfile
1
star
44

builder-witchcraft

Shell
1
star
45

go-findpeaks

Go
1
star
46

openqa-scheduler-go

Drop in replacement openQA scheduler written in Golang
Go
1
star
47

perl_training

TeX
1
star
48

poco-github-action

Github action for poco app bundler
Go
1
star
49

cobra-extensions

Create git-alike extensions for your cobra projects!
Go
1
star
50

Mojolicious-Plugin-Angular-MaterialDesign

Bundle MaterialDesign for angular in your mojolicious app
Perl
1
star
51

go-libp2p-simple-raft

A simple raft wrapper for libp2p
Go
1
star