Skip to content

Starlight-Industries/Comet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

33 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Comet โ˜„๏ธ

A Modern package manager for modern usecases

Installation โ€ข Docs โ€ข Roadmap โ€ข Community

Platform - Windows Platform - Linux Discord License

๐Ÿšง Early Alpha ๐Ÿšง


What is Comet?

Comet is a platform agnostic, automatically declarative package manager purpose built to simplify the needs of both developers and new users alike. It tries to providing a versatile, fast, and capable alterntive to other monolthic

Why?

Comet aims to provide:

  • Automatic logging and managing of package configurations
  • multi-source fetching (eg. git, self hosted repos, the comet Mono-repo)
  • Easy integration for other managers, (see npm for example)
  • Reduced reliance on complex package ecosystems (such as pip + conda)

When should I use Comet?

Have you ever heard the dreaded "it works on my machine" comment? Comet is designed to elimate this issue entirely. Simply install the packages build dependencies needed to build and run your application in one command, and your done! Even if comet doesn`t know how to build your project. You can use the automatically generated dependency tree to replicate your environment. Or you can easily define the build process yourself in a familar format (eg. toml)

How is this different from Nix? (and others)

Nix is a powerful tool, but it also very complex. This doesnt mean either is better, you should use the right tool for the job. For a comparison, look at the chart below.

Feature Comet Nix Others (apt, dnf, brew, etc.)
Declarative โœ… โœ… โŒ
Windows support โœ… โŒ โš ๏ธ Limited (eg, choco, scoop,winget)
MacOS support โŒ โœ… โœ… (e.g., brew)
Linux support โœ… โœ… โœ…
Automatic package declarations โœ… โŒ โŒ
System-wide installation โŒ yet โœ… โœ…
Source availability โœ… Multi-source (custom URL, Git registries, etc.) โš ๏ธ Primarily Nix channels and custom flakes โš ๏ธ OS-specific repositories (APT, RPM, Homebrew formulae)
Plugin support โœ… โŒ โŒ
Ease of use โœ… โš ๏ธ Steep learning curve for beginners; powerful for advanced users โœ… Generally straightforward for most users
Environment management โŒ โœ… (e.g., nix-shell, nix develop, nix-env) โš ๏ธ Limited (e.g., venv for Python, Docker for containers)
Advanced build system โŒ yet โœ… โŒ
Reproducibility โœ… (focused on environments) โœ… Deterministic builds โŒ
Build isolation โŒ โœ… (sandboxing and pure builds) โŒ
Community adoption In development, limited Widespread among advanced users โœ… Ubiquitous across common operating systems
Ecosystem maturity โš ๏ธ New project, in active development โœ… Established and stable โœ… Highly mature
Integration with CI/CD โš ๏ธ Experimental โœ… seamless integration (only on unix runners) โš ๏ธ Limited, dependent on external scripts

Quick Start

Installation

Important

Comet is currently in early development. this means that the installation process is not yet stable. and must be done manually.

Method 1. Build from source

  1. Install the rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. Clone the repository
git clone https://github.com/Starlight-Industries/Comet.git
  1. Navigate to the project directory
cd Comet
  1. Build & install the project
cargo install --path .

Note

If you are on windows, you will need to add the cargo bin directory to your path.

setx PATH "%PATH%;%USERPROFILE%\.cargo\bin"

Tip

if comet cannot be found make sure it is in your $PATH and restart your shell

โš ๏ธ Method 2. Install script (WIP)

Warning

This method is not yet stable, and may not work as expected. This method may or may not be available at the time of reading. (The script is a placeholder at the time of writing)

Simply run the following command to install the latest version of Comet.

curl -fsSL https://raw.githubusercontent.com/Starlight-Industries/Comet/main/install.sh | sh

Usage

[WIP] Check back later. Or you could Contribute! ๐Ÿ“š

Roadmap

Current Status: Project planing โ“

๐ŸŽฏ Basics

  • Fully plan out package spec <- We are here โญ
  • Basic package management system (install/remove).
  • Core logging framework for package declarations.
  • Dependency management with sandboxing.

๐Ÿš€ Advanced

  • Full-featured library backend.
  • Cross-platform support Windows.
  • Oficial GUI for easy package management.

๐Ÿ”ฎ Future Goals

  • Environment variable configuration baked into the CLI.
  • Cross-manager integration with npm, pip, and more.
  • Community-driven plugin repository.
  • MacOS Support.

๐ŸŽจ Dream Features

  • Web-based package browser (inspired by Flathub).
  • Intelligent version rollbacks.
  • Bootstrap linux via Comet. starlight-linux soonโ„ข

๐ŸŒ Platform Support

โญ - The most support is avalible for this platform.

๐Ÿ”ฅ - This platform is currently supported with high priority.

โš ๏ธ - The platform is planned to be supported in the future but is not currently supported for external reasons. (eg. MacOS requiring F)

Platform Status Priority
Linux โœ… Supported โญ Main
Windows ๐Ÿ”„ In progress ๐Ÿ”ฅ High
macOS ๐Ÿ”Ž Planned โš ๏ธ High

Note

We are always looking for new contributors to help us achieve our goals, so if you're interested and posess a targeted device, please reach out to us on Discord (Eg. MacOS ๐ŸŽ).

Community/Support

Here are the following links to all of our socials, if you discover a different account on any platform not listed here claiming to be affilated they are NOT affilated with the project, starlight-industries, or any of our related projects, products, or services.

Discord Banner

FAQ

Can Comet replace system package managers? No, not yet atleast. Comet is designed to complement system package managers by focusing on project-level and environment-specific package management, this is still subject to change though.
How can I contribute? We welcome contributions! Check out the [Contributing Guide]() for details on how to get started. Whether it's fixing bugs, improving documentation, or building new features, we'd love your help!

Contributing

Thank you for considering contributing to Comet! We appreciate your interest in helping us improve the project. Comet is an open-source project and is made possible by the contributions of many individuals like You:

For more information on how to contribute, please refer to the Contributing Guide.


Made with โค๏ธ by Starlight-industries & the open source community
๐ŸŒŸ Star us on GitHub | ๐Ÿ“ข Share with friends | ๐Ÿค Join the community!

About

An automatically declarative, cross-platform package manager. Written in Rust ๐Ÿฆ€.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages