rust-block
chkservice
rust-block | chkservice | |
---|---|---|
2 | 3 | |
47 | 342 | |
- | - | |
0.0 | 0.0 | |
3 months ago | almost 2 years ago | |
Rust | C++ | |
- | 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.
rust-block
- macOS Apps in Rust
-
Baby's first Rust with extra steps (XPC, launchd, and FFI)!
let block = ConcreteBlock::new(move |key: *const c_char, value: xpc_object_t| { unsafe { xpc_retain(value) }; let str_key = unsafe { CStr::from_ptr(key).to_string_lossy().to_string() }; let xpc_object: XPCObject = value.into(); map_refcell .borrow_mut() .insert(str_key, xpc_object.into()); true }); // https://github.com/SSheldon/rust-block#creating-blocks let block = block.copy(); let ok = unsafe { xpc_dictionary_apply(object.as_ptr(), &*block as *const _ as *mut _) };
chkservice
- GitHub - linuxenko/chkservice: Systemd units manager with ncurses, terminal interface
-
Baby's first Rust with extra steps (XPC, launchd, and FFI)!
I wondered if there was something similar to LaunchControl that could run in a terminal. I've used chkservice on Linux, but there seems to be no macOS equivalent. I've been dying for an excuse to learn a little bit of Rust (loved n+1 years in a row by the SO developer survey2) -- so this was my chance. Several months later I ended up with launchk. The rest of this post will go over: getting started, interfacing with launchd, a lot of macOS IPC bits, getting stuck, and a bunch of probably questionable Rust FFI stuff.
-
systemd GUI that works and is maintained (and will work on Mint)?
There is chkservice, which runs, but it ncurses rather than true GUI and some of its actions fail with a message saying . . graphical elevation is needed. And it's a bit arcane to use. (Github page.)
What are some alternatives?
rust-objc - Objective-C Runtime bindings and wrapper for Rust.
systemdgenie - Systemd managment utility
k9s - 🐶 Kubernetes CLI To Manage Your Clusters In Style!
launchk - Cursive TUI that queries XPC to peek at launchd state
rust-bindgen - Automatically generates Rust FFI bindings to C (and some C++) libraries.
ip2unix - Turn IP sockets into Unix domain sockets
Cursive - A Text User Interface library for the Rust programming language
systemd-manager
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
swift-bridge - swift-bridge facilitates Rust and Swift interop.
amd-disable-c6 - Systemd service to automatically disable the C6 power saving state on AMD Zen (Ryzen / Epyc) processors