Skip to content

GIVC Framework

The Ghaf/gRPC Inter-Vm Communication (GIVC) framework is a collection of services to to administrate and control virtual machines, their services, and applications across the Ghaf Framework.

Ghaf/GRPC Inter-Vm Communication

Albeit being efficient, GIVC as a control channel does not do heavy lifting - graphics, file transfers, and other high-bandwidth or low-latency tasks are implemented with more efficient technologies and out of scope for this framework.

The framework is written in Rust and Go, modern languages providing excellent features for microservices, and exports its components as Nix modules and packages, described in the Nix language. As part of the Ghaf Framework, this project inherits many technology dependencies from Ghaf itself.

grpc

gRPC The high performance and versatile RPC framework offers performant binary serialization, scalability, bi-directional streaming, and works across multiple platforms and languages.

rust

Rust The systems programming language with a focus on safety and performance. Rust is used for the admin component, providing a solid foundation for the framework.

go

Go The programming language designed for simplicity and efficiency. Go is used for the GIVC agent modules, providing a lightweight and efficient implementation.

nixos

NixOS The purely-functional Linux distribution with over 120k packages. GIVC exports NixOS modules and packages to allow integration with the Ghaf Framework.

systemd

systemd The system and service manager for Linux. GIVC uses systemd to manage services and applications in the VMs, providing a consistent and reliable way to control them.