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

Link to multiple APIs #49

Open
MartinSchobben opened this issue Mar 13, 2024 · 9 comments
Open

Link to multiple APIs #49

MartinSchobben opened this issue Mar 13, 2024 · 9 comments
Labels
question Further information is requested

Comments

@MartinSchobben
Copy link
Collaborator

I guess this is more of an thought on the future of rirods. It was stimulated by discussing this R package: https://github.com/jspijker/ricmd made by @jspijker. Would there be a benefit of implementing interfaces to multiple iRODS APIs under a unified R package?

I would then envision a generalized rirods/ricmd (R) interface with multiple plugins for linking to the HTTP, Python, ... APIs, respectively, based on availability and user preferences. In this thought experiment some heuristics would figure out which API is available.

@jspijker, is your package still in use at the RIVM? And are you still considering to submit to CRAN?

@trel
Copy link
Member

trel commented Mar 13, 2024

So this pure-R package would depend on different other ways to get to iRODS...

Curious / Interesting...

From https://irods.org/clients/ ... possible options...

@jspijker
Copy link

The ricmd package was used during a pilot project with iRODS. It was a 'quick fix' to get an R interface for our iRODS setup and worked fine. However, it still has some quirks (mainly about authentication) ,search queries are not implemented yet and documentation and testing is site specific. For us, the question was if we should maintain our own package or use/contribute to a package which is (somewhat?) supported by the iRODS consortium. We prefer the latter, since this kind of package development is not our core business.

So I'm a bit uncertain what to do with the ricmd package. If the rirods package fulfills our needs, then there is no use case for us. However, the ricmd package can still be a viable option for other cases were no HTTP API is available, but then it needs some further development before we can submit it to CRAN (which I don't foresee, unless we have a use case)

@MartinSchobben
Copy link
Collaborator Author

If such use cases exist, a common R interface with plugin connectors could be beneficial. Instead of multiple R packages each with their own way of talking to iRODS. Maybe this is a pipe dream, or, at a minimum, something for a package version far in the future.

@trel trel added the question Further information is requested label Mar 15, 2024
@trel
Copy link
Member

trel commented Mar 15, 2024

It seems having a direct-to-iRODS-protocol option may remain viable for a while as long as an instance of the HTTP API is not available for a particular iRODS Zone.

From a maintenance perspective - a single package is preferred, of course. And we're working to make the HTTP API as easy as possible to deploy and manage (while also full-featured and consistent).

@montesmariana
Copy link
Collaborator

If we could have a direct-to-iRODS protocol it would not be necessary to connect via other clients as well, right? Or would there be benefits to using multiple connectors?

The better the HTTP API, the more likely that different iRODS instances will have it installed, but a direct communication would mean no installations other than rirods itself, no?

@MartinSchobben
Copy link
Collaborator Author

If we could have a direct-to-iRODS protocol it would not be necessary to connect via other clients as well, right? Or would there be benefits to using multiple connectors?

I think HTTP will always be a benefit for remote access. Also proper tools exist for HTTP APIs and associated test to make it compliant with CRAN. Come to think of it, the system requirement of having to have iRODS next to the R package will make it hard to pass CRAN checks. This was the issue with the old rirods package.

@montesmariana
Copy link
Collaborator

Ok, thank you. I have learned something new :)

@MartinSchobben
Copy link
Collaborator Author

Unless one places a vendor/copy of iRODS within an R Package. Like for the R package curl .

@trel
Copy link
Member

trel commented Mar 15, 2024

Oh.

Initial reaction is that vendoring iRODS is NOT a good idea. Too many moving parts and would always be 'behind / stale'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Development

No branches or pull requests

4 participants