Skip to main content


Any #Rust folks giving up on Linux:

#FreeBSD has no current plan for Rust, but we want one! We want experienced Rust people to tell us how it should work. We’re interested in being able to add Rust in both userspace and the kernel, but we need a way of using Rust that works with multi-year support cycles (we need to be able to easily merge security fixes in trunk back to a branch that was originally made four years ago).

Personally, I’d love to see a new service management framework for FreeBSD written in Rust + Lua.

in reply to david_chisnall

How do you envision the framework being split between Rust and Lua? I mean, what would each language be used for?
in reply to Matt Campbell

@matt Low level things (wrapping pdfork, sockets, and so on) in Rust, most of the logic (e.g. systemd-compatible socket activation) in Lua.
in reply to david_chisnall

Why write most of the logic in Lua? Do you imagine users or services implementing Lua scripts or modules under the framework? If not, why not write all the logic in Rust, for minimum impact on CPU and private virtual memory?
in reply to Matt Campbell

@matt We already have Lua in the base system and there are a lot of people who know Lua. Most of the code is not performance critical and writing in a GC’d language is easy.
in reply to david_chisnall

@matt I'd suggest that you don't bother bringing anything to do with systemd into any conversation about service management improvements for FreeBSD.
in reply to πŸ’ž eva πŸ’ž

@winterschon @matt An increasing number of things depend on the systemd socket activation protocol. It’s going to become important fairly soon that we have support for it in the service management system.
in reply to david_chisnall

@winterschon Also, I think it's reasonable to take the position that despite all of systemd's faults, there are good things about it; I would put socket activation and declarative service configuration files in that category.
in reply to Matt Campbell

@matt @winterschon I disagree with a lot of design choices in systemd, but there are very few systems with /no* good ideas. Launchd, SMF, and systemd all have done some things well.
⇧