-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Announcement] The future for SamRewritten #147
Comments
Hi! A rewrite where the backend and frontends are separated would be great. And achievable nicely by simply splitting them into different crates. And Rust bindings already exist for the Steamworks API: crates.io/crates/steamworks As an avid user of SamRewritten, and a Rust programmer, I would like to do this... But, a small but! |
@bugsommelier It's amazing to see motivation already! Feel free to share here your code repo for the curious. I can still give a bit of insight of my experience: Working with GTK was great, although not really discussed online the documentation is always spot on, and there are plenty of tools making it easy to lay out the base of the application, Glade is fantastic. I chose it in the first place because I know it integrates very well with most Linux desktop environments. Qt looks ass there's no way around it. As of druid, I've never heard of it, but it seems to target multiplatform as a main goa. If I had to choose I'd go with Gtk again, there's already a crate for it. An other choice could be a tauri/electron app, but where's the fun in that haha |
^^ Another GUI option would be Iced, which I am personally more familiar with (and a big fan). But yes, backend first. I'll get started on my minimal backend implementation within a few hours, and see where it takes me. |
@PaulCombal Thanks for the code base to base this off of! I have hiccups, but I have created some operational functions with the Steamworks 0.9.0 crate. So far, once steam is running, I can successfully query the user's id and list the owned games (with achievements or editable statistics), lock and unlock the achievements, and commit the changes, but I haven't wrapped my head around numerous bugs with Wayland. I am still working on GUI Vim plugin manager that pulls from vimawesome.com, but lmk if you want to see what I have so far and I'll send my functions or full code for context. |
Yeah, i'm too using FLatpak version, so can it be used as flatpak with faltpak steam? |
I'm just going to throw this out there in the interim of an overhaul/new app... I use SamRewritten with Flatpak and it works okay. I do not use the UI though. It seems to crash. Not sure if that's due to the Flatpak or because I have over 1000 games and Sam gets a bit wobbly with lots of games :) If you have a system installed Steam Symlink Use the command line... Firstly list all the available achievements with: Next pop the wanted achievement with: All the cli commands are in the README: |
Whats the status of this rewrite? I'm interested in contributing but i don't see a respective branch or repos in anyone's GitHub accounts? |
Personally I still use this quite often, whenever I get issues with Achievements not unlocking etc (or recently when I played It Takes Two with a Friend Pass and got no achievements for anything I did). It still works totally fine for me, but I use NixOS which has has pretty well maintained (if somewhat advanced) package that's not the flatpak version. I packaged SamRewritten myself (since it's so easy to compile, for which you have my thanks!). If you and other people are going to end up with Rust, I'd definitely stick with GTK. It's really well supported in Rust, which has very high quality bindings maintained by the GTK team itself (and many other bindings to projects under the freedesktop umbrella). On top of that, you will also be able to port most of the GUI you currently have over without too many changes, which is great, because the current GUI is nice, slick and very easy to use. If you end up going with a higher level library, you could check out Relm4, which is built directly on top of GTK4. But if you want to make the porting process nice and easy it's probably a lot easier to just stack with the I can definitely try to help out if there is an attempt at Rust rewrite, even though I don't have a lot of time on my hands these days and I'm not too knowledgeable on how to work with Steam related things. |
Hi! I wanted to announce that I've been working on a replacement for this project which I've called Samantha https://github.com/LuisMayo/samantha It's using Rust in the backend and Angular in the frontend, orchestrated through Tauri (I know web dev is not popular but it is what it is) The project is a bit of a Proof Of Concept, currently it needs the SteamClient library either on the exe path (on Windows) or on the LD_LIBRARY_PATH on Linux. I haven't tested it with Steam Flatpak yet but It works with System Steam on Linux Mint and SteamOS 3 Currently I've stopping directly contributing to it because I'm using my time on other projects but I'll keep working on Pull Requests and that if someone contributes, else I'll probably circle back to this sooner or later Thanks! |
Hello, I came across this post a few months ago and wanted to share my implementation of SAM on Linux that I've been working on named Samira https://github.com/jsnli/Samira Samira is written with Rust, Typescript, and Tauri. Samira currently has core features including game search, achievement unlocking/locking, and statistics support. I'm hoping this initial release is enough to start being of use to those interested and to start gathering feedback. I feel I've reached a point where my next goal is to reach a stable 1.0.0 release before expanding into further features. If anyone interested has the time to take a look, I'd greatly appreciate it. Thanks! |
Hi everyone,
I'm going to be 100% fair, I think this tool is slowly becoming obsolete. I myself use Steam Flatpak since the "apt" version is outdated. This can be fixed, however I simply do not have time to dedicate to this project anymore. If you want it to keep going I'm counting on you all to make new contributions.
Looking back, It was a mistake from me back then in 2018 choosing C++, as the ecosystem is very poor. Conan and vcpkg simply do not get the job done. For the foreseeable future, I would endorse a rewrite in Rust (to make use of cargo), this time clearly separating frontend and backend.
Let me know what you think, and if any of you would like to start this project again with Flatpak and Rust in focus, I would be hyped to take part of it.
Have a wonderful day ❤️
The text was updated successfully, but these errors were encountered: