mmsd
stable_deref_trait
Our great sponsors
mmsd | stable_deref_trait | |
---|---|---|
5 | 4 | |
- | 29 | |
- | - | |
- | 1.2 | |
- | about 1 year ago | |
Rust | ||
- | Apache License 2.0 |
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.
mmsd
- Build a PinePhone App with Zig and Zgt
-
Simple Raspberry Pi Powered SMS Gateway
> MMS or Multimedia Messages are supported by gammu but they are stored in a binary format I have yet to find documentation on how to make something usable out of it for download. Any info in it is greatly appreciated.
You could look at this implementation: mmsd-tng [1]. It is used to handle MMSes on the PinePhone for instance.
[1] https://gitlab.com/kop316/mmsd/
-
Getting MMS working on Mobian (T-Mobile)
I installed mmsd-tng from Chris Talbot's repo (I don't run Mobian unstable and didn't wanna go fetch the package from there), and installed Chatty from Purism's repo per the Mobian docs. To be sure of no conflicts, I carefully uninstalled the existing Chatty via dpkg -r --force-deps chatty to remove just Chatty without taking Phosh out with it.
-
Weird tradeoff but great phone
Apparently MMS isn't used much outside of North America so it's not as high of a priority. I' on Mobian and use Janky MMS to at least receive them, but I still can't send them. There is also an MMS daemon that someone created to at least process them, but getting a messaging app to pick them up is still a challenge. They are also working on getting it integrated into Chatty. Apparently its getting pretty close but its kind of slow going because its mostly one guy working on it. So if you're any good with C (especially UI design) they are always open for more contributors.
-
My pinephone daily driver experiences so far
To get it working, you basically need a fork of mmsd (i.e. mmsd-tng) and you need an app that can pull the MMS messages in. The same developer who has worked on mmsd (kop316) has spent a good amount of time updating Chatty/Chats with his own custom branch, though it is quite barebones and really only allows receiving MMS images as file:// links in the UX. It sounds like Purism will eventually get around to implementing this in the UX but it may not be for months.
stable_deref_trait
-
Build a PinePhone App with Zig and Zgt
To elaborate, there is a recurring trend of sound C programs turning into unsound Rust programs, because shared mutability is often necessary but Stacked Borrows places strict conditions on constructing &mut T (they invalidate some but not all aliasing *const T), and it's less ergonomic to work solely in raw pointers and avoid creating Box or long-lasting &mut T (or for intrusive collections, any &mut T at all).
For example, matklad (the author of rust-analyzer, one of the preeminent Rust programmers and someone I'd expect to get code right) made a recent blog post on "Caches In Rust" (https://matklad.github.io/2022/06/11/caches-in-rust.html). The cache is built around https://docs.rs/elsa, which is built around https://docs.rs/stable_deref_trait/latest/stable_deref_trait..., which is unsound for Box and violates stacked borrows in its current form (https://github.com/Storyyeller/stable_deref_trait/issues/15). However, the rules may be relaxed or more ergonomic alternatives added (https://github.com/rust-lang/unsafe-code-guidelines/issues/3...), it's uncertain right now.
(Also I go by "they".)
-
How Safe Is Zig?
Unsafe Rust is an esoteric language without iron-clad guarantees, and type-level programming and async Rust is an esoteric metalanguage (https://hirrolot.github.io/posts/rust-is-hard-or-the-misery-...). For example, matklad made a recent blog post on "Caches In Rust" (https://matklad.github.io/2022/06/11/caches-in-rust.html). The cache is built around https://docs.rs/elsa, which is built around https://docs.rs/stable_deref_trait/latest/stable_deref_trait..., which is unsound for Box and violates stacked borrows: https://github.com/Storyyeller/stable_deref_trait/issues/15
There is a recurring trend of sound C programs turning into unsound Rust programs, because shared mutability is often necessary but it's difficult to avoid creating &mut, and Stacked Borrows places strict conditions on constructing &mut T (they invalidate some but not all aliasing *const T).
-
Blog Post: Caches In Rust
The cache is built around https://docs.rs/elsa, which is built around https://docs.rs/stable_deref_trait/latest/stable_deref_trait/trait.StableDeref.html, which is unsound for Box and violates stacked borrows: https://github.com/Storyyeller/stable_deref_trait/issues/15
-
munge 0.2: Destructure raw pointers, MaybeUninit, cells, pins, and more
StableDeref has multiple issues under the current Stacked Borrows model: https://github.com/Storyyeller/stable_deref_trait/issues/15
What are some alternatives?
ArmCord - ArmCord is a custom client designed to enhance your Discord experience while keeping everything lightweight.
zorrow - Borrowchecker in Zig
pmaports
lru-rs - An implementation of a LRU cache
slack-term - Slack client for your terminal
phosh-antispam
ims - Send macOS iMessages via CLI
munge
vvmplayer
vvmd
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.