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

Allow use as a Library #72

Open
JamesLaverack opened this issue Jan 3, 2023 · 2 comments
Open

Allow use as a Library #72

JamesLaverack opened this issue Jan 3, 2023 · 2 comments

Comments

@JamesLaverack
Copy link
Contributor

Following a discussion on Slack there's a desire to make the APIs for Paranoia available for use. Presently they are in internal/ which forbids their use by other programs (convention by the Go compiler).

We have a few options:

  • Move all code currently under internal/ to pkg/, exposing all of it as an API surface.
  • Add new code under pkg/ that calls the implementation in internal/, exposing a more selected API surface.

The latter would be more work, but would expose an intentfully designed API instead of everything, which might make future code changes easier without breaking changes.

cc @mt-inside

@cyberbliss
Copy link

I'd definitely go with the 2nd option - a deliberately designed API. Loose coupled APIs will give so much more flexibility

@AlexWootton
Copy link
Contributor

AlexWootton commented Jan 3, 2023

+1 to the above, contingent on us securing enough development effort to make progress on it in a timely fashion (i.e. completing it in weeks rather than months or years). If we can't and it's preventing potentially valuable use-cases then I'd say just expose the lot for now and let people have at it. Whilst not ideal I'd say it's better than blocking the code from being made use of.

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

3 participants