Skip to content
developv0idPublic

About

Experimental source-based package management system for Linux.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

29 Commits

Folders and files

Repository files navigation

YOSI — Source-Based Package Manager

Website · Package repository · Русский

An experimental source-based package manager for Linux, written in Go.
Still early in development. No magic, no promises of replacing your distro's package manager.


Overview

YOSI is my attempt to build a source-based package manager from scratch — and understand every part of the process along the way.

The idea is straightforward: keep package metadata and build recipes in a repository, then let the client fetch, verify, build and install software from source. The client should know exactly what it installed, and the user should be able to see what's going on.

There's a fair amount left to build. That's part of the project.

Features

Here is where things stand today:

Status Feature
✅ Search packages from the remote repository index
✅ Read package information from TOML manifests
✅ Parse and validate package manifests
✅ Fetch and decode TOML build recipes in the Go repository code
🚧 Downloading, SHA-256 verification and building sources
🚧 Staging with DESTDIR, installation and file tracking
⏳ Dependency resolution and local package database
⏳ Package removal and upgrades

YOSI cannot install packages yet. The next milestone is a real end-to-end yosi install termtris, not a command that only pretends to work.

Quick start

You'll need Go and Git. For now, running the client from the source tree is the simplest option:

git clone https://github.com/developv0id/yosi.git
cd yosi
go run ./cmd/yosi help

Examples

Look for a package:

go run ./cmd/yosi search termtris

Read its manifest:

go run ./cmd/yosi info termtris

Check the client version:

go run ./cmd/yosi version

search and info contact the public YOSI repository, so they need an internet connection and a reachable server.

Warning

YOSI is experimental software. It is not ready to manage packages on a production system.

Package repository

The public package index lives at repo.yosi-repo.ru.

The server serves package metadata and build recipes over HTTPS. The client does the interesting work: reading the metadata and, eventually, running the build and keeping track of installed files.

The first example package is termtris 1.9:

Having a recipe in the repository doesn't mean the installer is finished. Right now these files help define and test the format.

Documentation

The formats are still evolving. If you want to see how they're defined, start here:

Development

The client is written in Go. The repository index uses JSON, while package manifests and build recipes use TOML.

cmd/yosi/              Command-line client
internal/repo/         Repository HTTP client, metadata and validation
internal/builder/      Build engine (planned)
internal/installer/    Installation and staging (planned)
internal/resolver/     Dependency resolution (planned)
internal/db/           Local package state (planned)
packages/              Package manifests and build recipes
docs/                  Format drafts and project images
tests/                 Tests

Most of the heavy lifting is still ahead. I prefer adding one working piece at a time rather than making a huge CLI with commands that don't do anything.

Infrastructure

The website and package repository are hosted on my own physical Debian server with nginx and HTTPS. I wanted to get my hands dirty with the server side of package distribution too.

YOSI self-hosted server

Infrastructure supervisor

Yosya, the unofficial infrastructure supervisor

Yosya is YOSI's unofficial Infrastructure Supervisor. She oversees cables, watches development and occasionally reviews questionable technical decisions. Without saying a word.

Contributing

Found a bug? Have an idea? Open an issue. Technical discussions are welcome. For bigger changes, please start with an issue before writing a large patch, and have a look at CONTRIBUTING.md.

Created and maintained by Sergey Varakin (v0id).

License

Copyright © 2026 Sergey Varakin.

YOSI source code and documentation are licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). Photographs, personal images and third-party assets are not covered by the GPL unless explicitly stated otherwise.

About

Experimental source-based package management system for Linux.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages