Single-file scripts that download their dependencies

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • windmill

    Open-source developer platform to turn scripts into workflows and UIs. Fastest workflow engine (5x vs Airflow). Open-source alternative to Airplane and Retool.

  • It's a topic close to my heart since that is one of the key thing that we solve in the OSS project windmill [1], letting users define simple single-file scripts in python/deno/go and handle the dependencies for them.

    For deno, as the article point out, it's easy, deno has this feature baked in and we just have to deno run the scripts, similar for go where the imports are pretty much a fully qualified pointer to their source and version.

    For python, we have to do a bit of machinery. For python we parse the AST, look at the imports, use the heuristics that most import name correspond to their pypi package (we maintain a also list of exception-mappings), pip-compile [2] all the imports, and then get a requirement file that we attach to the script, pip-install it before running the script (then we do a LOT of magic to cache the dependencies so one doesn't actually have to install them 99.9% of the time).

    [1]: https://github.com/windmill-labs/windmill

  • pip-tools

    A set of tools to keep your pinned Python dependencies fresh.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • pkgx

    the last thing you’ll install

  • I think they missed the best one: https://github.com/teaxyz/cli

    It doesn't even need tea itself to run, it'll make a bash script that'll get it too if absent.

  • pipx

    Install and Run Python Applications in Isolated Environments

  • pipx might get this ability: https://github.com/pypa/pipx/pull/916

  • nix

    Nix, the purely functional package manager

  • Shebang support with flakes: https://github.com/NixOS/nix/pull/5189

  • malli

    High-performance data-driven data specification library for Clojure/Script.

  • babashka

    Native, fast starting Clojure interpreter for scripting

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts