Skip to content

IKalonji/pyGet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

pyGet

pyGet is a Decentralized python package manager for developers using IPFS.
Explore the docs »

View Demo · Report Bug · Request Feature

Inspiration

To onboard more developers into the web3 space we need to provide tools that most developers are familiar with. Package managers are one of the fundamentals to the development lifecycle.

Although we currently make use of traditional package management like NPM, Nuget and PIP, none of these are decentralized. We would like to make it easier for developers to publish packages and grow the decentralized storage ecosystem.

Demo Video

DEMO

How it works

flowchart TD
    A[WEB APP] <-- Create/View Modules --> B[BACKEND API]
    E[CLI TOOL] <-- Request PACKAGE commands --> B
    C[APP] <-- Project Scaffold --> E
    F[IPFS Storage layer] <-- store/retrieve --> B
Loading

Developers would publish their work using the Web app and that would be stored on IPFS. Developers wanting to make use of said package would scaffold an app using the CLI and install the packages as request, upon install the package is retrieved from IPFS and added to the project dependencies.

Available CLI commands for the current iteration:

  • pyGet init (Scaffold new project)
  • pyGet install package-name (Add package to the dependencies)
  • pyGet list (Lists available packages)
  • pyGet uninstall (Remove from project dependencies)

Future developments

  • Data encryption
  • Make pyGet open to the public
  • Improve file handling
  • Resolve dependencies required by installed package

Challenges faced

Getting the files from the GET endpoint was a bit challenging especially when it involves a CAR file.

Running the project

  • Requires Python 3.6+
  • API KEY from Tatum for IPFS data storage
  1. Clone the repo.
git clone https://github.com/IKalonji/pyGet.git
  1. Insert API KEY into ipfs_requests.py.

  2. In pyGet-API folder run app.py

  3. For the Web App Angular is required, navigate to pyGet-WEBAPP and run npm install.

  4. Run ng serve --open

  5. Finally for the CLI, navigate to pyGet-CLI, run the setup script and run pyget.py

Acknowledgements

  • IPFS/Filecoin
  • Devpost

Licenses

The project is open source under the MIT License, please see the license file.

About

pyGet is a Decentralized python package manager for developers using IPFS.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •