• Stars
    star
    238
  • Rank 169,306 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created over 13 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Something like busybox in pure Go

GoBox v0.3.1

GoBox is supposed to be something like BusyBox. I.e. a single, preferably small executable which bundles all important shell tools. A swiss army knife for the command line, if you will. It is being developed with a focus on Amazon EC2 or as a small footprint basis for an OpenVZ template.

In order to keep the source code and executable small, I have cut a lot of options you might be used to from GNU Coreutils or similar. I might even have less options than BusyBox itself. I certainly have fewer applets right now, and probably ever will. But I consider that a good thing.

Pitfalls

  • The shell is not a bash, sh or zsh. It is something original, written by me and is fairly limited. It does the job of acting as a shell, it‘s hardly adequate for scripting, though.
  • Telnetd has no authentication mechanism right now. It’s noting more than a network-capable pipe.

Installation

GoBox is now go get-able.

Developing applets

  • Copy applets/template and name the copy like your applet
  • Rename template.go and edit its contents to fit your applet
  • Add your applet to cmd/gobox/applets.go

The template provides the basic framework you should stick to.

Why is there not real shell?

I got this question a lot and I have 2 main reasons:

  • I seriously did not want to implement the broken and god-awful syntax of bash or any other currently used shell!
  • You have Go. Do you need anything more lightweight? The philosohpy behind this project is that it is cheap to (re)build and deploy. You don’t really use scripting anymore. If you need to automate some process, write an applet in Go and integrate it with GoBox and push it.

Bugs

Probably

Contact

If you have ideas for missing applets, found a bug or have a suggestion, use this project’s issues. If you want to participate, just fork and code away. For questions contact me: [email protected]

Thanks

Credits

(c) 2011-2014 Alexander "Surma" Surma [email protected]

More Repositories

1

tinderforbananas.com

It’s like Tinder, but for 🍌
JavaScript
369
star
2

rollup-plugin-off-main-thread

Use Rollup with workers and ES6 modules today.
JavaScript
305
star
3

underdash

Collection of JS snippets for collection manipulation
JavaScript
227
star
4

use-workerized-reducer

Like useReducer, but runs in a worker.
JavaScript
226
star
5

jsxx

Rust
169
star
6

observables-with-streams

A collection of observables built with streams.
TypeScript
133
star
7

ishoudinireadyyet.com

Tracker for Houdini APIs in different browsers
HTML
119
star
8

rollup-plugin-loadz0r

An ill-named rollup plugin that makes code splitting “just work”, even with workers.
JavaScript
98
star
9

jxl-art

Web app to make art using JPEG XL.
JavaScript
93
star
10

wasmphobia

Rust
91
star
11

rollup-plugin-assemblyscript

A Rollup plugin that allows you to import AssemblyScript files and compiles them on-the-fly.
JavaScript
74
star
12

httptools

Augmenting the basic net/http package with functionality found in web frameworks without breaking the original API.
Go
57
star
13

surma.dev

Personal Homepage
JavaScript
48
star
14

rollup-plugin-comlink

Use workers seamlessly with Rollup
JavaScript
38
star
15

s3put

Push a number of folders to a S3 bucket
Go
31
star
16

gopin

Tool-less version pinning for Go - surpassed by gopkg.in
Go
31
star
17

dof-tool

A web app to calculate your depth of field when doing photography.
JavaScript
30
star
18

silly-wat-linker

A tool that makes writing WebAssembly Text files easier.
Rust
28
star
19

streaming-dot

doT-based streaming templating engine for Node and the web
JavaScript
27
star
20

as-inliner

Inlines files into your AssemblyScript
JavaScript
26
star
21

rollup-plugin-workz0r

An ill-named rollup plugin that adds worker bundling support
JavaScript
26
star
22

bfwasm

A non-optimizing Brainf_ck to WebAssembly compiler
JavaScript
25
star
23

stacksignal

Make a go program print a stacktrace of all goroutines on SIGUSR1
Go
22
star
24

spreadsheet

TypeScript
18
star
25

rollup-plugin-wasm-esm

JavaScript
15
star
26

rollup-plugin-entrypoint-hashmanifest

A rollup plugin that generates a hash manifest for each entry point.
JavaScript
13
star
27

silly-alloc

A collection of very basic allocators. Written with WebAssembly in mind.
Rust
13
star
28

gocpio

A Go package for cpio archives
Go
13
star
29

webscribble

A simple, no-fluff web scratchpad.
JavaScript
7
star
30

miniqoi

A decoder for QOI in hand-written WebAssembly
WebAssembly
7
star
31

http2-push-detect

Lists HTTP/2 pushes when requesting an URL
JavaScript
7
star
32

rm2cal

A simple calendar/TODO list for Remarkable 2.
JavaScript
6
star
33

peasant

TypeScript
6
star
34

polymer-reddit-api

A simple element wrapping Reddit’s JSON API for my talk at the Polymer Summit 2015 in Amsterdam.
HTML
5
star
35

lurkk.it

TypeScript
4
star
36

platinum-god

JavaScript
3
star
37

emsettings

HTML
3
star
38

letterboxer

JavaScript
3
star
39

bikeshed-docker

Dockerfile for Bikeshed
3
star
40

javascript-pong

My very first JavaScript project from 2004
2
star
41

importalias

Go
2
star
42

osci

Emulator and tools for osci, a one-instruction set CPU derivatived from subleq
Rust
2
star
43

eatoutandstaysane

A web app to remove any mention of calories from food menu PDFs.
JavaScript
2
star
44

xmos-virtualport

Virtual ports to emulate arbitrary-sized GPIO ports on the XMOS architecture
C
1
star
45

shaderscribble

A simple, no-fluff shader scratchpad.
JavaScript
1
star
46

diplomaenhancer

Daemon to manipulate your local host file to block webpages which you consider distracting
JavaScript
1
star