Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dimensionhq/electric

A fast, futuristic package manager for Windows.
https://github.com/dimensionhq/electric

alpha automation cli devops electric it-admin package-management package-manager powershell powertool powertools python server software-management windows

Last synced: 5 days ago
JSON representation

A fast, futuristic package manager for Windows.

Awesome Lists containing this project

README

        



Electric


A futuristic, powerful and fast package manager for Windows.

![Installing 7-Zip Through Electric](https://github.com/electric-package-manager/electric/blob/master/assets/install-animation.gif?raw=true)

Highly optimized for **speed** and **usability**, Electric is anywhere from 200% to 1500% faster than other market competitors for downloading Applications and Packages, and has incredible speeds for concurrent / parallel downloading.

Electric believes in incredible **efficiency**, and is the only Windows package manager that officially supports installing packages **concurrently**.

Built for today's systems and with good support for lower specced systems, Electric runs smoothly even on systems with as little as 2 GB of ram!

**Note**: Since electric is in an alpha phase, it might not be completely stable yet. Feel free to open any issues or bug reports at [issues](https://github.com/electric-package-manager/electric/issues/).

# :zap: Installation

First you'll need to set your execution policy to RemoteSigned if not done so:
```powershell
Set-ExecutionPolicy RemoteSigned
```

### Method 1: Install Using Official Installer

Download the latest version of the electric Installer from the [Releases Page](https://github.com/electric-package-manager/electric/releases/latest)

After completing the download, run the installer and follow the simple installation prompts.

Open your Command Prompt (cmd.exe) or alternatively Powershell (powershell.exe) and type `electric` to get a list of help commands.



### Method 2: Install Using Powershell
Run the following command on your powershell window:

```powershell
iwr -useb get.electric.sh | iex
```

### Method 3: Build From Source
Prerequisites: **Git**, **Python 3.x**

1. Clone the github repository using the Github CLI.
```powershell
git clone https://www.github.com/electric-package-manager/electric
```

2. Change to the electric directory.
```powershell
cd electric
```

3. Install it locally using the Python package manager (`pip`)
```powershell
pip install --editable .
```

4. Register [Tab Completion](https://github.com/electric-package-manager/electric#tab-completion)

5. Type `electric` to get a help menu of commands.

## :test_tube: Testing

First, make sure you [**Build From Source**](https://github.com/electric-package-manager/electric#method-3-build-from-source).

Run this command to run the tests for electric
```powershell
python -m unittest discover src/tests
```

## :clap: Supporters
[![Stargazers repo roster for @electric-package-manager/electric](https://reporoster.com/stars/electric-package-manager/electric)](https://github.com/electric-package-manager/electric/stargazers)

[![Forkers repo roster for @electric-package-manager/electric](https://reporoster.com/forks/electric-package-manager/electric)](https://github.com/electric-package-manager/electric/network/members)


## :hammer: Build Status
| Feature | Build Status |
|------------------------------------|----------------|
| Installation | ✅ |
| Portable Installation | ✅ |
| Uninstallation | ✅ |
| Update | ✅ |
| Show | ✅ |
| List | ✅ |
| Search | ✅ |
| Code Editor Extension Installation | ✅ |
| Python Package Installation | ✅ |
| NodeJS Package Installation | ✅ |
| Configuration Management | ✅ |
| Cleanup | ✅ |
| Tab Completion | ✅ |


#### Tab Completion
When using the official Electric installer, tab completion is setup for you out of the box, however, it is possible to manually add tab completion for electric.
Add the below lines to your powershell profile:
```powershell
Register-ArgumentCompleter -Native -CommandName electric -ScriptBlock {
param($wordToComplete, $commandAst, $cursorPosition)
[Console]::InputEncoding = [Console]::OutputEncoding = $OutputEncoding = [System.Text.Utf8Encoding]::new()
$Local:word = $wordToComplete.Replace('"', '""')
$Local:ast = $commandAst.ToString().Replace('"', '""')
electric complete --word="$Local:word" --commandline "$Local:ast" --position $cursorPosition | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
```
Then, restart your powershell and you've setup tab completion!

## Authors
[Tejas](https://www.github.com/suptejas) - Founder And Developer Of Electric

See also the list of [contributors](https://github.com/electric-package-manager/electric/contributors) who participated in this project.

Special thanks to:
[@ZaphodElevated](https://www.github.com/ZaphodElevated) who built the terminal animation you saw above.

## Built With
[Python 3](https://www.python.org/)

[Click](https://click.palletsprojects.com/en/7.x/)

## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/electric-package-manager/electric/tags).

## License

This project is licensed under the Apache 2.0 License - see the [LICENSE.md](LICENSE) file for details.