Skip to content
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

External project: MutagenMon (Visual interface for Mutagen) #173

Closed
rualark opened this issue Dec 1, 2019 · 4 comments
Closed

External project: MutagenMon (Visual interface for Mutagen) #173

rualark opened this issue Dec 1, 2019 · 4 comments

Comments

@rualark
Copy link

rualark commented Dec 1, 2019

Hi! I started developing a visual interface for mutagen:

https://github.com/rualark/MutagenMon

This is my first GUI program with wxpython, so probably not everything is polished, but it works. There are some limitations currently:

  • I tested it only on Windows, but it probably has to work on Linux and Mac, maybe with some little changes. I am looking forward to test it on Linux and Mac
  • Works only with local and ssh mutagen transports
  • Requires that session names are unique
  • MutagenMon communicates with mutagen by calling mutagen sync list every second, which is not ideal - a better solution would be to subscribe to events

Is it possible to get mutagen.io sessions status more efficiently without launching mutagen binary every second?

@xenoscopic
Copy link
Member

Hey, very cool, thanks for sharing! I'm still playing catchup on the issue tracker, so I haven't had a chance to dive in yet, but I'll try to take a look ASAP. In the mean time, would you like a mention in the README?

It is possible to get session status through the daemon API, but it's quite complicated because (a) it's a gRPC API, (b) the API isn't stabilized yet, and (c) it runs over a Unix Domain Socket transport on POSIX systems and a Named Pipes transport on Windows. As far as I know, the Go gRPC implementation is the only one that supports using these transports, so connecting to the API directly via Python is going to be tricky (if not impossible).

There are existing requests (#38, #57) for improving API access and scripting. This is probably something coming in Mutagen v0.12. I'll most likely focus on #57 first, because I'm not sure of a good way to expose an HTTP-based API locally in a secure fashion.

What I imagine is that Mutagen list commands will have a JSON-based output mode and monitor commands will have a streaming JSON output mode. It'll take a little bit of work to figure out exactly what these JSON formats should look like, because I want to keep them stable even if the internal API changes. I'm going to open another issue into which we can consolidate all of the various requests so far and discuss the format for this output.

@xenoscopic xenoscopic changed the title Visual interface for mutagen.io External project: MutagenMon (Visual interface for Mutagen) Dec 11, 2019
@rualark
Copy link
Author

rualark commented Dec 11, 2019

Thanks. I think mentioning is good, probably for some users like me GUI for monitoring (even such as additonal program) is important. But I have only tested MutagenMon on Windows yet.

@xenoscopic
Copy link
Member

Thanks again for this! I've gone ahead and added a link to the README. I'll keep an eye on how the project evolves. Be sure to monitor #38 and #57 for better integration options in upcoming releases. I'd definitely be keen to hear your feedback.

@rualark
Copy link
Author

rualark commented Jan 8, 2020

Thanks for that and for the links to issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants