top | item 41064333

What is Toybox?

118 points| thunderbong | 1 year ago |landley.net | reply

23 comments

order
[+] 1vuio0pswjnm7|1 year ago|reply
IMHO, toybox does have some potentially advantageous differences from busybox, e.g.,

busybox seq does not have -f unlike toybox seq

busybox sed has fewer features than toybox sed, e.g., -E

busybox mv does not have -v but toybox mv has it

toybox base64 has an -i option, busybox does not

toybox hexedit has some useful features not found in busybox hexedit

toybox nc has some useful features not found in busybox nc, e.g., -U and -f

Overall, busybox has more available utilities than toybox.

[+] written-beyond|1 year ago|reply
Please watch this Landley talk for the best explanation. He's a peculiar one but his work is fascinating

https://youtube.com/watch?v=Sk9TatW9ino

[+] greatcircle|1 year ago|reply
Landley said in one of his talks (I think it was the linked one) that his goal with Toybox was to enable Android devices to function as a Linux-like development environment.

Toybox provides the shell utilities. You can plug in a keyboard and mouse via the USB charging port. You can screencast to a TV via a Chromecast. Somehow you'd need to get a compilation toolchain on there.

It's an interesting idea IMO. For many people an Android device is their only computer... though I'm not aware of anyone doing this for real in the wild?

[+] upon_drumhead|1 year ago|reply
This sounds really cool, however, reading the status page ( http://landley.net/toybox/status.html#done )is near impossible. I have no clue what the difference between `#command#` or `@command@` is. Are they both usable? some are links to man pages, some are not, but are listed in the done section.
[+] rany_|1 year ago|reply
and the legend that is provided isn't that helpful:

> Legend: [posix] <lsb> (development) {toolbox} =klibc= #sash# @sbase@ *beastiebox* $tizen$ -fhs- .yocto. %shell% +request+

[+] 1GZ0|1 year ago|reply
Deeply appreciate people rewriting and polishing up stuff lower down in the stack. Its work like that that makes sure the house of cards our digital infrastructure has become doesn't just collapse.
[+] saagarjha|1 year ago|reply
So I was reading the background on Toybox and it’s definitely…interesting? Seems like the author used to work on BusyBox, had a falling out, then in a fit of pique wrote a permissively licensed version?
[+] Nursie|1 year ago|reply
IIRC busybox became part of some GPL enforcement lawsuit(s) because it was being packaged in a lot of embedded situations without the necessary source-publishing.

So the author split off to work on toybox instead, a new implementation under permissive licensing.

I guess it just goes to show you should pick licenses that actually reflect what you want to happen to your code.

[+] singpolyma3|1 year ago|reply
> Busybox predates Android, but has never shipped with Android due to the license.

Wouldn't want any GPL'd code in android... Oh wait

[+] mijoharas|1 year ago|reply
I think I'm missing context on what you're referring to. Does AOSP include a lot of GPL'd software or something? Do they not comply with the GPL license? (are you talking about the linux kernel or something?)
[+] tempcommenttt|1 year ago|reply
This doesn’t explain what toybox is. Maybe I should ask ChatGPT
[+] gorbypark|1 year ago|reply
Toybox combines many common Linux command line utilities together into a single BSD-licensed executable. It's simple, small, fast, and reasonably standards-compliant (POSIX-2008 and LSB 4.1).
[+] IntelMiner|1 year ago|reply
BusyBox but not GPL licensed effectively
[+] erikbye|1 year ago|reply
The explanation is in the first sentence. How much clearer could he be?