Replies: 30 comments 15 replies
-
Assuming today is not a 1th of April… Whoa... That's one hell of an ambition.
Actually, I've seen counter-examples when people got rid of bloated
I briefly looked at it, and I failed to understand what it is or why it is needed. Are there external commands invoked from aura where If anything, this old but good book might come in handy: |
Beta Was this translation helpful? Give feedback.
-
As for Bash, some other AUR-related tools use And when it comes to the effort of the port itself - luckily Aura is already built and has a decade of accumulated lessons :) I don't need to reinvent the logic itself, I just need to transfer it. I already know Rust, so there's no extra overhead there either. |
Beta Was this translation helpful? Give feedback.
-
One feature that I've wanted for a long time, which |
Beta Was this translation helpful? Give feedback.
-
That would be very good. Although, as far as I can remember, I explored pacman source code, and I saw there a simple loop written in plain C, which iterates over packages and downloads them one by one. But if that loop can be separated from the download routine without exclusively locking the database, that would be so cool. |
Beta Was this translation helpful? Give feedback.
-
Yes I've wanted that for years. It's hard in C, but trivial in a modern language like Rust. indicatif can be used to show multithreaded progress, as well! |
Beta Was this translation helpful? Give feedback.
-
Yes, it would require more elaborate progress indicator than simple |
Beta Was this translation helpful? Give feedback.
-
I've used it before and it works quite well. We'd have full control over the styling, so |
Beta Was this translation helpful? Give feedback.
-
God save the Queen... 😮 |
Beta Was this translation helpful? Give feedback.
-
Update:
|
Beta Was this translation helpful? Give feedback.
-
This is a demonstration of my Rust port proof-of-concept. It:
|
Beta Was this translation helpful? Give feedback.
-
Sounds like a really good idea to me! 👍 |
Beta Was this translation helpful? Give feedback.
-
The CLI flag definitions have been vastly simplified due to auto-derivation of the
Language flags conflict:
You'll also notice Further, sane and organized localized output is now possible via fluent, the Rust client for Project Fluent. No more baking the translations into the binary! |
Beta Was this translation helpful? Give feedback.
-
Another advantage of Rust is the ability to upload release candidates. I could provide a third package on the AUR, |
Beta Was this translation helpful? Give feedback.
-
I have a solution for Aura's debug logging, configurable via the command line as expected:
The neat part is that the logger implementation doesn't need to leak into the library, meaning different UIs could choose different backends. Stripped release-mode binary size is 1.7mb at this point. Adding
|
Beta Was this translation helpful? Give feedback.
-
I'd have to recommend against clap if you're still going to be a pacman wrapper. Clap likes to do things a certain way, and trying to force it to behave exactly like pacman is a big pain, |
Beta Was this translation helpful? Give feedback.
-
This is already in pacman-git. Will hit in the next release. |
Beta Was this translation helpful? Give feedback.
-
Arch's pacman does not provide a static libalpm.a to link against. Although you can compile it yourself to get one. And then hack alpm.rs to support it. |
Beta Was this translation helpful? Give feedback.
-
Yeah don't bet on it. That guy has claimed 100s of common names and doesn't give them out despite the desc. I wanted the crate yay ;-; |
Beta Was this translation helpful? Give feedback.
-
Thanks for jumping into the conversation :)
I believe I've already succeeded 😄
Hot damn!
Yeah looks like I'll be sticking with dynamic linking for the near future.
He's squatting on some real nice names eh? Okay, plan B then. |
Beta Was this translation helpful? Give feedback.
-
Just send an eMail to help@crates.io and try to claim the crate you want. I think how this guy is doing it, was not the intention. Worth a try. ;-) I already sent an eMail to bring some attention to this special case of name squatting. |
Beta Was this translation helpful? Give feedback.
-
I'd love to get my hands on the code and try break it :p |
Beta Was this translation helpful? Give feedback.
-
I'll have the new PR up soon. |
Beta Was this translation helpful? Give feedback.
-
This is exciting! 👍
I'm curious, why wasn't it possible to access |
Beta Was this translation helpful? Give feedback.
-
Almost zero cost. Sadly converting from rust strings to c strings requires adding a null byte to the end. But I've done my best to have as little overhead as possible. |
Beta Was this translation helpful? Give feedback.
-
Just FYI I have written an experimental Haskell binding to libalpm :) |
Beta Was this translation helpful? Give feedback.
-
So after switching to rust will there only be this rust port or the haskell version will still be supported for bug fixes only? |
Beta Was this translation helpful? Give feedback.
-
@fosskers Out of curiosity, why were completions maintained by hand instead of generated by optparse-applicative? |
Beta Was this translation helpful? Give feedback.
-
Is there anything left, which is currently hindering an early release? |
Beta Was this translation helpful? Give feedback.
-
Is this complete now? As I dont see a release yet. |
Beta Was this translation helpful? Give feedback.
-
Considering there had been no release since 2 years, and you planned to release an early Rust version for just as long: Is there anything major, that causes such huge delays? |
Beta Was this translation helpful? Give feedback.
-
With Aura nearing its 10th birthday, I'd like to open a discussion about the possibility of porting Aura to the Rust language. This has been on my mind for some time, but I don't believe that I'm being swept up in hype. Nor do I intend this discussion to be one of "Haskell vs Rust" in general. Both are fine languages.
Such a change would represent Aura 4.0.0, and let me be clear that as far as users are concerned, they shouldn't notice any difference in Aura's commands / data formats / config formats. However when it comes to authorship and maintenance of Aura (which are primarily my personal burden), Rust as a systems language offers some distinct advantages.
PROs
libalpm
: This would improve performance in a number of placesand unlock new features that were previously unfeasable. This is the form that
I always wanted Aura to have, instead of relying on
pacman
so much.devs than Haskell devs.
static linking(we'll likely have to stay dynamic, due tolibalpm
).chips. Related stack issue).
-S
,-Q
,etc.). This should fix the currently garbled
--help
output for free.String
handling.CONs
replacement for Pacman, where
rua
is just for building AUR packages.language-bash
Haskell library.However this should be a straight-forward port, and I can probably claim the
bash crate.
So, I ask for the input of concerned community members. Is there anything I'm not accounting for? I'm willing to the put the time into such a port to Rust, and think that doing so would be worth it in the long-term.
Beta Was this translation helpful? Give feedback.
All reactions