Live data from Hacker News

Show HN: Grsh – A high-performance shell for FreeBSD written in Rust

grimreaper.icu

1–10 of 47 posts

Show HN: Grsh – A high-performance shell for FreeBSD written in Rust

#1
I built GRSH because I wanted a modern, memory-safe shell that feels native to FreeBSD but works seamlessly on macOS.

While there are many shells out there, GRSH is my take on a minimal, fast, and secure command interpreter written entirely in Rust. It's designed for users who want the safety guarantees of Rust without the overhead of more bloated alternatives.

I'm currently working on the official FreeBSD port. I’d love to get feedback on the shell's behavior and performance from the community.

Github: https://github.com/antoniomalara301289/grsh

Show HN: Grsh – A high-performance shell for FreeBSD written in Rust
grimreaper.icu

Re: Show HN: Grsh – A high-performance shell for FreeBSD written in Rust

#2
I've been working on GRSH because I wanted to explore building core system utilities using Rust's memory safety guarantees, with a specific focus on the FreeBSD ecosystem.

While the shell is still in its early stages, my goal is to create a lightweight, fast, and secure alternative to traditional shells that feels at home on both FreeBSD and macOS.

Key features I'm focusing on:

Zero-cost abstractions for process management.

Native performance on BSD-based systems.

Minimalist design without the bloat of modern 'all-in-one' shells.

I'm also developing DIR (a visual disk analyzer for FreeBSD) as part of this 'Grim Reaper' toolset.

I would love to hear your feedback on the implementation or any specific features you'd like to see in a Rust-based shell for Unix systems.

Source Code: https://github.com/antoniomalara301289/grsh Project Page: https://grimreaper.icu

Re: Show HN: Grsh – A high-performance shell for FreeBSD written in Rust

#3
Great to see more Rust-based tooling coming to FreeBSD. Regarding the architecture, how are you handling Job Control and signal propagation? Specifically, are you using a custom wrapper for libc to manage tcsetpgrp and foreground process groups, or are you leveraging a specific Rust crate for asynchronous signal handling? I’m curious to see how GRSH maintains the 'native' feel when managing complex pipelines on the FreeBSD kernel.

Re: Show HN: Grsh – A high-performance shell for FreeBSD written in Rust

#4
Thanks for the question! For Job Control, I’m currently implementing a custom management system to handle foreground and background process groups.

Regarding signal propagation, I’m leaning towards a direct integration with libc to maintain that 'native' feel you mentioned, specifically for managing tcsetpgrp and ensuring the terminal is correctly assigned to the active process group.

One feature I’m particularly proud of is what I call 'Pinning': it allows the user to pin a specific process and recall it instantly. This is part of my effort to make GRSH feel more interactive than a standard POSIX shell.

As for async signal handling, I'm currently refining the core loop to ensure that complex pipelines don't leave zombie processes or mismanaged groups on the FreeBSD kernel. It's a work in progress, and feedback on the current implementation in the repo is more than welcome!

Post reply on HN