Git Product home page Git Product logo

huak's Introduction

ci-rust ci-python crates.io discord

huak

Huak logo


About

A Python package manager written in Rust. The Cargo for Python.

⚠️ Disclaimer: huak is currently in its Alpha phase.

Huak aims to support a base workflow for developing Python packages and projects. The process is linear and purpose oriented, establishing better familiarization with the steps.

graph LR
    A[Workflow Startup] --> B[Project Change]
    B --> C[Project Test]
    C --> D[Project Distribution]
Loading

See the design doc for more workflow details.

The goal is to create an opinionated tool to support a reliably inviting onboarding experience for the Python ecosystem, that feels responsive and snappy to use.

Milestones and Project Board

See either this milestone list or the issue board to check the status of this project at any point in time.

README Contents

Installation

A PoC, Alpha releases, and an 0.1.0 are expected.

During the Alpha phase you'll need to explicitly install the latest pre-release available.

Install with pip:

❯ pip install huak --pre

Install with cargo:

❯ cargo install huak --version crates.io

Around 0.1.0 you'll be able to install huak using brew. More distribution plans will be finalized closer to 0.1.0.

huak help

A Python package manager written in Rust inspired by Cargo.

Usage: huak <COMMAND>

Commands:
  activate  Activate the project's virtual environment
  add       Add a dependency to the existing project
  audit     Check for vulnerable dependencies and license compatibility*
  build     Build tarball and wheel for the project
  config    Interact with the configuration of huak
  clean     Remove tarball and wheel from the built project
  doc       Generates documentation for the project*
  fix       Auto-fix fixable lint conflicts
  fmt       Format the project's Python code
  init      Initialize the existing project
  install   Install the dependencies of an existing project
  lint      Lint the project's Python code
  new       Create a new project at <path>
  publish   Builds and uploads current project to a registry*
  remove    Remove a dependency from the project
  run       Run a command within the project's environment context
  test      Test the project's Python code
  update    Update dependencies added to the project*
  version   Display the version of the project
  help      Print this message or the help of the given subcommand(s)

"*" indicates first-pass of implementation is incomplete.

Note that huak activate is currently only partially supported on Windows. See the related issue for more details.

Documentation

If you've cloned the repository, run cargo doc --open.

Some documentation for 0.0.x releases will land on docs.rs. Around the 0.1.0 release I'd like to have more robust documentation about Huak for users, contributors, and the curious.

Goals

Besides some of my own experience with the Python ecosystem, there are a few additional guiding principles steering the development of Huak:

1. Open to open source 📚

Open source has done a lot for me both from a tooling and professional development perspective. I'd love to offer Huak as a way to help onboard the absolute and relative newcomers (like myself).

2. Just use huak

I love Rust's onboarding experience. Cargo has played a large role. It's a great tool for newcomers to use to get their feet wet. Huak can provide the same experience for Python.

3. Fast ⚡️

There's room for faster tooling in the Python ecosystem. One of the guiding principles will be "Is this the fastest it can be?"

4. Python 🤝 Rust

JavaScript has seen a "Going Rust" sub-community pop up. Python seems to be getting one too. Huak would be able to fuel contributions to the intersection of these two languages.

Contributing

Please read our contributing guide before you start contributing.

More

See the design doc for more about the project, design motivations, and various architecture docs.

huak's People

Contributors

cnpryer avatar dpgraham4401 avatar loipesmas avatar dependabot[bot] avatar chaslain avatar icp1994 avatar foundednahte avatar gearboxfox avatar aaronleopold avatar higherorderlogic avatar 0101coding avatar mitchellberend avatar snapdgn avatar trkohler avatar backwardspy avatar saguywalker avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.