The Bun Shell

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

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • bun

    Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one

  • Great point! According to https://github.com/oven-sh/bun/blob/b433beb016470b87850f3c01..., Bun Shell took inspiration from zx[0], dax[1] and bnx[2]

    [0]: https://github.com/google/zx

    [1]: https://github.com/dsherret/dax

    [2]: https://github.com/wobsoriano/bnx

  • node

    Node.js JavaScript runtime ✨🐢🚀✨

  • One thing that surprised me about Node was how slow the default way to shelling out (child_process) could be (probably https://github.com/nodejs/node/issues/14917).

    Although according to the linked issue, it has been "fixed", I still ran into a problem during a batch script that was calling imagemagick through a shell for each file in a massive directory; profiling was telling me that starting (not completing) (yes, I was using the async version) the child process increasingly slows, from sub-millisecond for the first few spawns, to eventually hundreds of milliseconds or seconds... Eventually I had to resort to doing only single spawn a bash script that in turn did all the shelling out.

    It seems that the linked execa still relies on child_process and therefore has the same issue. It saddens me to see the only package for node that appears to actually fix this and provide a workaround seems to be https://github.com/TritonDataCenter/node-spawn-async and unmaintained.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • dax

    Cross-platform shell tools for Deno and Node.js inspired by zx.

  • Great point! According to https://github.com/oven-sh/bun/blob/b433beb016470b87850f3c01..., Bun Shell took inspiration from zx[0], dax[1] and bnx[2]

    [0]: https://github.com/google/zx

    [1]: https://github.com/dsherret/dax

    [2]: https://github.com/wobsoriano/bnx

  • execa

    Process execution for humans

  • For something which works across all JS runtimes (Deno, Node) and achieves basically the same, check out the popular JS library Execa[1]. Works like a charm!

    [1]: https://github.com/sindresorhus/execa

  • awesome-tagged-templates

    A list of libraries and learning resources for ES2015 tagged template literals

  • These are called "tagged templates": https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

  • node-spawn-async

    spawn child processes asynchronously

  • One thing that surprised me about Node was how slow the default way to shelling out (child_process) could be (probably https://github.com/nodejs/node/issues/14917).

    Although according to the linked issue, it has been "fixed", I still ran into a problem during a batch script that was calling imagemagick through a shell for each file in a massive directory; profiling was telling me that starting (not completing) (yes, I was using the async version) the child process increasingly slows, from sub-millisecond for the first few spawns, to eventually hundreds of milliseconds or seconds... Eventually I had to resort to doing only single spawn a bash script that in turn did all the shelling out.

    It seems that the linked execa still relies on child_process and therefore has the same issue. It saddens me to see the only package for node that appears to actually fix this and provide a workaround seems to be https://github.com/TritonDataCenter/node-spawn-async and unmaintained.

  • zx

    A tool for writing better scripts

  • Great point! According to https://github.com/oven-sh/bun/blob/b433beb016470b87850f3c01..., Bun Shell took inspiration from zx[0], dax[1] and bnx[2]

    [0]: https://github.com/google/zx

    [1]: https://github.com/dsherret/dax

    [2]: https://github.com/wobsoriano/bnx

  • 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
  • bnx

    Discontinued zx inspired shell for Bun.

  • Great point! According to https://github.com/oven-sh/bun/blob/b433beb016470b87850f3c01..., Bun Shell took inspiration from zx[0], dax[1] and bnx[2]

    [0]: https://github.com/google/zx

    [1]: https://github.com/dsherret/dax

    [2]: https://github.com/wobsoriano/bnx

  • shelljs

    :shell: Portable Unix shell commands for Node.js

  • When I need shell-like utilities from my JS scripts I've previously used shelljs [0]. It's neat that Bun is adding more built-in utilities though.

    [0] https://github.com/shelljs/shelljs

  • cinnamon

    A Linux desktop featuring a traditional layout, built from modern technology and introducing brand new innovative features.

  • Many mobile apps are written in JS/TS with React Native.

    Linux desktop environments like Cinnamon [1] also use JavaScript for the UI. Linux Mint with Cinnamon is invariably among the top 3 Linux desktop distributions (on distrowatch [2]).

    If anything, stats probably don't accurately capture how ubiquitous JS is.

    [1] https://github.com/linuxmint/cinnamon

  • exa-kernel

    EXA Kernel

  • murex

    A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)

  • I agree. I’ve written about this before but this is what murex (1) does. It reimplements some of coreutils where there are benefits in doing so (eg sed, grep etc -like parsing of lists that are in formats other than flat lines of text. Such as JSON arrays)

    Mutex does this by having these utilities named slightly different to their POSIX counterparts. So you can use all of the existing CLI tools completely but additionally have a bunch of new stuff too.

    Far too many alt shells these days try to replace coreutils and that just creates friction in my opinion.

    1. https://murex.rocks

  • rimraf

    A `rm -rf` util for nodejs

  • And npmjs.com will block your IP if you do too many downloads in on day.

    Actually is says 86m a week here: https://www.npmjs.com/package/rimraf

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