🪄​ The *magical* build system and package manager
Go to file
2024-02-08 10:34:34 +01:00
.github/workflows ci: Updated to checkout@v3 2023-11-28 10:17:20 +01:00
cutekit More sensibles names for distros. 2024-02-08 10:34:34 +01:00
doc Update documentation 2024-01-04 13:03:19 +01:00
meta/nix Added devShell to nix flake. 2024-01-28 00:19:19 +01:00
tests Added support for nested commands and running cutekit in containers. 2023-11-30 16:40:59 +01:00
.gitignore Fix typing issue and added .vscode to gitignore 2024-01-02 10:17:04 +01:00
.mypyconfig Initial commit. 2022-06-26 00:22:53 +02:00
LICENSE Update LICENSE 2023-07-17 12:53:19 +01:00
logo.png meta: Renamed osdk -> cutekit + improved logging + better error handling. 2023-07-17 12:53:19 +01:00
pyproject.toml Fix package-data names 2023-12-16 20:57:54 +01:00
README.md feat: added Nix flake 2024-01-23 13:10:21 +01:00




CuteKit

The *magical* build system and package manager




Introduction

CuteKit is a suite of tools and utilities for compiling, cross-compiling, linking, and packaging project written in low-level languages such as C, C++ or, Rust. Anything from a simple library to an operating system can be built using CuteKit.

  • It uses JSON: Cutekit uses JSON instead of introducing a whole new programming language for describing the project. And also has macros for more advanced use cases (see Jexpr).
  • It's a package manager: Cutekit package manager is based on Git, nothing is centralized.
  • It's extendible: Cutekit can be extended by writing custom Python plugins.
  • It's easy: the templates help the user quick-start a project.
  • It's portable: Cutekit works on Linux, Windows, and MacOS.

CuteKit in the wild

  • SkiftOS : A hobbyist operating system written in C++.
  • WKHtmlToPdf : Odoo's fork of wkhtmltopdf which is a command line tools to render HTML into PDF and various image formats using the Qt WebKit rendering engine.

Installation

To install Cutekit, you may use your favourite package manager if it is available. Or you can install it manually by following the instructions below.

By using pip

$ git clone https://github.com/cute-engineering/cutekit

$ cd cutekit

# If you want to use the latest version of Cutekit, you can switch to the dev branch.
# $ git switch dev

$ pip install --user -e .

By using Nix

$ git clone https://github.com/cute-engineering/cutekit

$ cd cutekit

# If you want to use the latest version of Cutekit, you can switch to the dev branch.
# $ git switch dev

$ nix shell ./meta/nix

Or you can also use Cutekit in your flakes. For example:

{
  description = "Hello cutekit";
  inputs = {
    # If you want to use the latest version of Cutekit, you can specify the dev branch.
    # cutekit.url = "github:cute-engineering/cutekit/dev?dir=meta/nix";
    cutekit.url = "github:cute-engineering/cutekit?dir=meta/nix";
    nixpkgs.url = "nixpkgs/nixos-23.11";
  };

  outputs = {self, nixpkgs, cutekit, ... }:
    let
      pkgs = nixpkgs.legacyPackages.x86_64-linux;
      ck = cutekit.defaultPackage.x86_64-linux;
    in {
      devShells.x86_64-linux.default = pkgs.mkShell {
        packages = with pkgs; [
          ck
        ];
      };
    };
}

Quick-start

  • If you directly want to start using Cutekit for a new project, you can just run $ ck I host and it will create a new project in the host directory (you can rename it later).

  • If you want to use Cutekit for writing operating systems, you can create a new limine-based project by running $ ck I limine-barebone.

Example

If you want to see how it works you can read the doc/cutekit.md file.

License

MIT License

Cutekit is licensed under the MIT License.

The full text of the license can be accessed via this link and is also included in the license.md file of this software package.