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

deploy the compiled code #1

Open
performantdata opened this issue Dec 15, 2020 · 0 comments
Open

deploy the compiled code #1

performantdata opened this issue Dec 15, 2020 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@performantdata
Copy link
Owner

performantdata commented Dec 15, 2020

We need a deployment process for the native or LLVM IR libraries and JARs generated by the build process. It should be possible to upload a package of such contents to an Ivy or Maven repository. If only Coursier is supported, that's OK for now. There is apparently no standard defined for this yet. Required features:

  • An archive format that can hold JARs, native libraries (shared or static) for multiple architectures, Python wheels, and other language-specific archives.
  • A packaging type that can be uploaded to/downloaded from an Ivy or Maven repository like Maven Central, Artifactory or Nexus. This likely requires a new packaging type and thus a Coursier plugin to support it. The standard Maven packaging types include only those Java-specific ones for which Maven was created: JAR, WAR, EAR, RAR, POM, etc. Most packaging types seem to be based on ZIP, so we'd probably go with that.

native-only

I asked on SO about a standard solely for native and LLVM IR libraries, but it only got 10 hits and no answers. I don't think that such a standard exists except for the OS-level packaging that I mentioned there, RPM and DEB and such. While such packages can be deployed locally, they seem like overkill for the

JAR overloading

Some people have sought ways to use the JAR format for deploying non-JAR resources; for example, packaging native libraries into the JAR (under META-INF). A JAR can be used as an archive like this,
The problem with this is that the loading

AAR

There's an Android Archive format that is capable of storing JARs and native libraries. I'm not sure whether it supports LLVM IR libraries. Its contents are very specific to Android's needs.

Prefab

Included in the AAR is the Prefab archive format. This is the part of the AAR that contains the native libraries. Prefab is also a tool that generates the CMake integration needed to consume the modules in a Prefab package. This may provide the

Nix

@performantdata performantdata added the enhancement New feature or request label Dec 15, 2020
@performantdata performantdata self-assigned this Dec 15, 2020
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