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

Compatibility with Dalamud's Lockdown Mode #39

Open
KazWolfe opened this issue Jan 22, 2023 · 1 comment
Open

Compatibility with Dalamud's Lockdown Mode #39

KazWolfe opened this issue Jan 22, 2023 · 1 comment
Assignees

Comments

@KazWolfe
Copy link
Owner

XIVDeck's communications system will not work with the changes currently proposed in DIP59: Lockdown Mode (reference implementation). The purpose of this Issue is tracking everything required for Lockdown Mode compatibility.

In short, the current implementation of Lockdown Mode will remove all ability for Dalamud plugins to communicate to/from localhost on any HTTP port. This will require XIVDeck to switch to named pipes or some other communication method. Unfortunately, the Stream Deck Plugin in its current state (as a JavaScript plugin running in a browser context) can only perform HTTP connections. Therefore:

  • The Stream Deck Plugin must be completely rewritten to support a language/runtime that supports Named Pipes.
  • The Dalamud Plugin must be rewritten to use named pipes instead of HTTP APIs.

For this:

  • A new Stream Deck library will need to be found. Currently SharpDeck seems to be the likely choice, but it is missing some features of the SD+ API that will likely not be added as they are not officially/properly documented in Elgato's docs.
  • The Dalamud plugin will likely need to switch to gRPC or some other communications system. The exact nature of what the switch will be to is currently unknown.
@KazWolfe KazWolfe self-assigned this Jan 22, 2023
@KazWolfe
Copy link
Owner Author

Lockdown mode has been canceled (for now), so this is a lower priority. Ideally, I would still like to switch over to using named pipes, but it can wait.

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

No branches or pull requests

1 participant