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

Rework recipient lines and recipient parsing to be pluggable #45

Open
str4d opened this issue Dec 31, 2019 · 2 comments
Open

Rework recipient lines and recipient parsing to be pluggable #45

str4d opened this issue Dec 31, 2019 · 2 comments
Labels
enhancement New feature or request

Comments

@str4d
Copy link
Owner

str4d commented Dec 31, 2019

Currently each supported recipient line and type is hard-coded and special-cased. While this is nice for e.g. building the enums, it makes it harder to extend with new recipient types, which is the single joint in the age format. In the interest of keeping that joint well oiled, we should rework the recipient line handling logic to be pluggable. Initially this would be an internal decision, but it should be usable via the library interface, and maybe later via binary plugins for the rage tool suit.

Related to #36.

@str4d str4d added the enhancement New feature or request label Dec 31, 2019
@str4d
Copy link
Owner Author

str4d commented Jan 7, 2020

After discussion at HACS 2020, it is likely that we will create a plugin system where the main implementations communicate with separate plugin binaries via a standard I/O interface. I'm still inclined to figure out an internal trait for handling recipient lines and keys though, as it means that adding support for more recipient lines is not a breaking change (though I could probably use incomplete enums for that), and removing support for recipient lines is not a breaking change.

@str4d
Copy link
Owner Author

str4d commented Jan 10, 2020

#52 and #56 have improved recipient line parsing to the point that it could be behind an internal trait. Serialization still needs to be refactored.

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

No branches or pull requests

1 participant