Skip to content
/ sfsu Public

(WIP) A modern, and very very fast, implementation of Scoop

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

winpax/sfsu

Stupid Fast Scoop Utils

GitHub Workflow Status dependency status GitHub all releases GitHub Scoop Version (winpax bucket) wakatime

Note

This is still under development. It currently provides faster alternatives to most, but not all, Scoop commands. All breaking changes will only occur in v2.0 and with proper deprecation warnings.

Super fast replacements and additions to scoop commands written in Rust

Are looking for our underlying library that makes all of this possible (or do you want to make your own implementation of Scoop?), check out sprinkles

Reporting Issues

Please, please, please check the FAQs, before you report an issue.

If you have a question, please ask it on the discussions page.

If you have a bug report, feature request, or other issue, then open an issue.

Installation

scoop bucket add extras

scoop install sfsu

Hook

You may set up the hooks to use the scoop commands normally

Add the following to your Powershell profile

Invoke-Expression (&sfsu hook)

You can also optionally disable certain hooks via the --disable <COMMAND> flag

Invoke-Expression (&sfsu hook --disable list)

It also supports Bash in WSL and MSYS2

Add the following to your .bashrc (or its equivalents, i.e .zshrc) file

source <(sfsu.exe hook --shell bash)

Nushell is also supported. Run the following command save it to a file.

sfsu hook --shell nu | save -f path/to/some/file.nu

Then source it in your config.nu (situated in path $nu.config-path).

source path/to/the/file.nu

The above disable demonstration also works

Benchmarks

Benchmarks have been moved to the wiki

Building yourself

Initial setup

Before you get started make sure you

Prerequisites

Build instructions

  • Run just setup
  • Run cargo build to build the project

Long Term Goals

I have a couple of long term goals.

Firstly, I want to create a Rust library to help interacting with Scoop from code. This library would allow for things like installing packages, running updates, etc. It will likely start by providing a function to get the Scoop install path, but hopefully over time it will grow into a fully fledged library, which is used internally by sfsu to interact with Scoop.

My other long term goal is to create a Scoop replacement for those who want it, in a similar vein as Shovel. This is a fairly large undertaking and will definitely take me a lot of time, so this is a very long term goal, and may never happen. Despite this I never really plan to replace Scoop. It is a great package manager and if anything sfsu would just be a command you can run instead of Scoop, but would run on Scoop installations.

In the meantime I will continue working on this independently of Scoop as a collection of seperate tools that work in conjunction with Scoop.

Made with 💗 by Juliette Cordor