langpacks
langpacks copied to clipboard
Rust and C++ package sets
(disclaimer: low priority, no pressing requirement to CR or merge)
[Feb 2020 Update] This PR was overhauled Feb 2020 to be more inline with other packageset design decisions. It was successfully validated with the packageset validator script, but hasn't actually been installed into any cluster.
* [ ] runtime image? I'm not sure what to do here. Rust algos will need libssl (for algo client), but otherwise, it's completely dependent on what libs the algorithm used. In theory, that could be almost anything (e.g. there are even tensorflow bindings in rust), in practice, almost nobody uses rust on our platform. 🤷♂️
My thought is that the base image should be what it is now - small and with the things we know are common. Beyond that we could be creating packagesets as needed (e.g. rust + ffmpeg bindings). Ideally we'd have the + whatever
extend from the same base image but that's WIP still.
* [ ] C/C++. I've demonstrated that it's possible to build C/C++ code in this package set. In theory, I could create a separate template that stubs out the C/C++ build pieces to make it easier to do, but I'm currently staying away from that because an official decision to support C/C++ deserves more thought than just hacking out a hybrid rust+cpp template.
Not sure I see the C++ stuff in here? If it was extra work I might rather leave it out from this PR
I believe the last commits make this much closer to something we could merge. I believe these are the remaining pieces:
- [x] Accept or reject the design choice of exposing
fn main
and a function to register theapply
function. Pages 9-11 of this doc build the case for this approach - [ ] Nail down versioning story for rust packageset
- [ ] fixed version or latest stable in Dockerfile?
- [ ] Should the algorithmia.conf file have some sort of version?
- [x] Testing - need to re-verify packageset builds, and then actually figure out a good way to test the containerized build/run. The process felt very clunky the last time I tried.
- [x] Cut a non-beta 3.0 release of the rust client (just waiting on any feedback on the API for registering the handler which has reference documentation here) and use it in this template
- [ ] Figure out how to ship this.