npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

slangroom-exec

v1.7.2

Published

<!-- SPDX-FileCopyrightText: 2024-2025 Dyne.org foundation

Downloads

204

Readme

Slangroom-exec

The missing slangroom executor


✨ Slangroom-exec features

slangroom-exec is a simple utility that reads from STDIN the following content

  1. conf
  2. slangroom-contract
  3. data
  4. keys
  5. extra
  6. context

separated each per new-line and encoded in base64 (it seems difficult, but slexfe helper tool is here for that) and outputs the slangroom execution to stoud.

Slangroom-exec Demo


🚩 Table of Contents


🎮 Quick start

Slangroom-exec is in mise and can be installed from it or directly from github releases:

# download the executable from mise
mise use "aqua:dyne/slangroom-exec"
# or from github releases
wget https://github.com/dyne/slangroom-exec/releases/latest/download/slangroom-exec-$(uname)-$(uname -m) -O ~/.local/bin/slangroom-exec && chmod +x ~/.local/bin/slangroom-exec

# execute a simple slangroom contract
wget -qO - https://raw.githubusercontent.com/dyne/slangroom-exec/main/test/fixtures/welcome.slex | slangroom-exec

🔝 back to top


💾 Build

To be able to build slangroom-exec you need the following dependencies to be available in your PATH:

You can install them by hand or use mise and run mise install in the root of the repository.

You can build the executable following the steps:

# clone the repository and enter in it
git clone https://github.com/dyne/slangroom-exec
cd slangroom-exec

# if you decided to use mise now run: mise install

# build the executable
make slangroom-exec

🔝 back to top


🪛 Slexfe

The SLangroom-EXec Format Encode (aka slexfe) script is used to encode the human readable input of slangroom-exec, i.e.

  • the slangroom configuration
  • the slangroom contract
  • the slangroom keys/data/extra/context

into the base64 multiline encoded machine-readable version of it and the result is printed to stdout.

💾 Install

Slexfe can be installed directly from github releases:

wget https://github.com/dyne/slangroom-exec/releases/latest/download/slexfe -O ~/.local/bin/slexfe && chmod +x ~/.local/bin/slexfe

🧩 Usage

As said before slexfe can take in input up to 6 files and they should be iondicated with the right flag:

-c  for conf
-s  for slangroom-contract
-d  for data
-k  for keys
-e  for extra
-x  for context

If all the files have the same name and they follow the slangroom name contention, that is:

  • conf: ${name}.conf
  • slangroom-contract: ${name}.slang
  • data: ${name}.data.json
  • keys: ${name}.keys.json
  • extra: ${name}.extra.json
  • context: ${name}.context

you can use the -F flag. So for example

slexfe -c hello.conf -s hello.slang -d hello.data.json -k hello.keys.json -e hello.extra.json -x hello.context

will be equal to

slexfe -F hello

Pay attention, this works also when not all the files are definted.

A last feature to help in the easier cases, when something is passed in /dev/stdin to slexfe, e.g.:

cat hello.slang | slexfe

it is interpreted as the slangroom contract. This also overwrites the --slangroom-contract option flag if passed as a duplicate.

🔝 back to top


🐛 Troubleshooting & debugging

Availabe bugs are reported via GitHub issues.

🔝 back to top


😍 Acknowledgements

Copyright © 2024-2025 by Dyne.org foundation, Amsterdam.

🔝 back to top


👤 Contributing

  1. 🔀 FORK IT
  2. Create your feature branch git checkout -b feature/branch
  3. Commit your changes git commit -am 'feat: New feature\ncloses #398'
  4. Push to the branch git push origin feature/branch
  5. Create a new Pull Request gh pr create -f
  6. 🙏 Thank you

🔝 back to top


💼 License

Slangroom-exec - The missing slangroom executor
Copyleft 🄯 2024-2025 Dyne.org foundation, Amsterdam

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

🔝 back to top