sh
spdk
Our great sponsors
sh | spdk | |
---|---|---|
21 | 6 | |
6,751 | 2,829 | |
- | 2.0% | |
7.8 | 9.9 | |
7 days ago | about 5 hours ago | |
Go | C | |
BSD 3-clause "New" or "Revised" License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sh
-
Show HN: Hucksh – A Shell with a Good Memory
* The shell itself is https://github.com/mvdan/sh, a bash-like command interpreter
-
Pure Bash Bible
https://github.com/mvdan/sh
And finally, checkbashisms if you intend on making pure posix scripts that are compatible with debian/ubuntu's dash. It is part of the debian's devscripts suite, but is often individually packaged in other distros.
> Also you can use the chat as a learning tool
Or you could learn from a guide written by people who have suffered decades of experience of the pitfalls of shell scripting and have shared their woes.
https://mywiki.wooledge.org/BashGuide
- Shfmt – format shell programs
- Shfmt – format shell programs (like gofmt, rustfmt)
-
Gofumpt: It's like gofmt except more strict
My bad, I completely screwed this up... the as of yet undiscussed project is:
https://github.com/mvdan/sh
(not shmfmt)
-
Gosh Linux shell written in Golang
I support projects like this for purposes of exploration and practice. But don't expect people to use it when there are already well established projects out there like: https://github.com/mvdan/sh
- mvdan/sh: A shell parser, formatter, and interpreter with bash support; includes shfmt
-
similar to shellcheck?
There are also: - shfmt - sh - bash language server - bashate
- shfmt - formatting comments issue
-
Indenting piped shell expressions in a script?
I also like running shfmt over my shell scripts so they all look the same without me having to think about whitespace.
spdk
-
calcuating IOPS
https://spdk.io will require you to load linux onto the server (livecd off a usb should be fine), but is essentially the most efficient way possible to do IO. Intel’s storage division used to use it to get the numbers they advertised with. When they loaded up a system with kioxia drives, Intel managed to hit 120 million IOPS in some of their testing.
- Storage performance development kit
- Win32 is the stable Linux userland ABI
- SPDK: Storage Performance Development Kit
-
ShellCheck: A static analysis tool for shell scripts
Since the project I work on (https://spdk.io) largely produces a set of executables as output, it was most natural to write the tests in bash. There's one top level bash script that kicks off the full suite of tests and thousands and thousands of lines of tests all written as bash scripts stringing together calls to these executables.
One of these tests is to run shellcheck against all of the scripts in the repo. We don't allow any modifications to scripts without shellcheck giving them the green light now. The quality of our tests has increased dramatically since this was instituted - it's a really great tool.
-
Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
FYI SPDK doesn't strictly require the IOMMU be enabled. See https://spdk.io/doc/system_configuration.html There's also a new experimental interrupt mode (not for everything) finding some valuable use cases in SPDK, see https://github.com/spdk/spdk/blob/master/CHANGELOG.md and feel free to jump on the SPDK slack channel or email list for more info on either of these https://spdk.io/community/
What are some alternatives?
bat - A cat(1) clone with wings.
KVell - KVell: the Design and Implementation of a Fast Persistent Key-Value Store
ShellCheck - ShellCheck, a static analysis tool for shell scripts
shellharden - The corrective bash syntax highlighter
go-pkg-xmlx
chia-blockchain - Chia blockchain python implementation (full node, farmer, harvester, timelord, and wallet)
go-pkg-rss
static-analysis - ⚙️ A curated list of static analysis (SAST) tools and linters for all programming languages, config files, build tools, and more. The focus is on tools which improve code quality.
inject
hadolint - Dockerfile linter, validate inline bash, written in Haskell
toml - TOML parser for Golang with reflection.
shunit2 - shUnit2 is a xUnit based unit test framework for Bourne based shell scripts.