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

Feature: Native Transport (Static JNI) #950

Merged
merged 86 commits into from
May 31, 2024

Conversation

sgammon
Copy link
Member

@sgammon sgammon commented May 30, 2024

Ready for review Powered by Pull Request Badge

Summary

Implements Netty's native transports in custom modules, which can be built and loaded via Static JNI.

  • New modules
    • feat: transport-kqueue
    • feat: transport-epoll
  • Native build
    • Gradle C/C++ build logic
    • Dependent libraries and headers
    • Working on macOS
    • Working on Linux
    • Working in CI
  • Runtime changes
    • New feature logic for NativeTransportFeature
    • Support for Static JNI

sgammon and others added 17 commits May 27, 2024 14:51
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: GitHub <noreply@github.com>
- feat: implement override modules for native transport
- feat: implement native build for transport libs
- feat: swap for transport v2 in feature and native `runtime` build
- feat: working static jni

Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: GitHub <noreply@github.com>
@sgammon sgammon added ✋ embargoed PRs and issues that can't proceed because of some non-code condition module:server Modules, changes, and issues relating to Elide for servers feature Large PRs or issues with full-blown features 🧪 labs Experimental work transport Features related to native or NIO transport labels May 30, 2024
@sgammon sgammon added this to the Release R6: Alpha 10 milestone May 30, 2024
@sgammon sgammon self-assigned this May 30, 2024
sgammon and others added 6 commits May 30, 2024 12:47
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
sgammon added 20 commits May 31, 2024 00:43
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Signed-off-by: Sam Gammon <sam@elide.ventures>
Copy link

sonarcloud bot commented May 31, 2024

Copy link

codecov bot commented May 31, 2024

Codecov Report

Attention: Patch coverage is 16.66667% with 100 lines in your changes are missing coverage. Please review.

Please upload report for BASE (feat/entrypoint-v2@c7124a3). Learn more about missing BASE report.

Additional details and impacted files

Impacted file tree graph

@@                  Coverage Diff                  @@
##             feat/entrypoint-v2     #950   +/-   ##
=====================================================
  Coverage                      ?   53.75%           
=====================================================
  Files                         ?      380           
  Lines                         ?    11012           
  Branches                      ?     1807           
=====================================================
  Hits                          ?     5919           
  Misses                        ?     4591           
  Partials                      ?      502           
Flag Coverage Δ
gradle 53.75% <16.66%> (?)
jvm 53.75% <16.66%> (?)
lib 53.75% <16.66%> (?)
plugin 53.75% <16.66%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Coverage Δ
...ain/java/dev/elide/cli/bridge/CliNativeBridge.java 0.00% <ø> (ø)
...m/src/main/kotlin/elide/runtime/plugins/jvm/Jvm.kt 100.00% <100.00%> (ø)
...ain/java/elide/runtime/ruby/ElideRubyLanguage.java 0.00% <0.00%> (ø)
...e/runtime/core/internals/graalvm/GraalVMRuntime.kt 69.69% <0.00%> (ø)
...runtime/intrinsics/server/http/HttpServerConfig.kt 0.00% <0.00%> (ø)
...main/kotlin/elide/runtime/plugins/python/Python.kt 58.82% <25.00%> (ø)
.../runtime/gvm/internals/node/process/NodeProcess.kt 55.73% <25.00%> (ø)
...lin/elide/tool/cli/cmd/update/SelfUpdateCommand.kt 0.65% <0.00%> (ø)
...src/main/kotlin/elide/runtime/plugins/ruby/Ruby.kt 0.00% <0.00%> (ø)
.../internals/intrinsics/js/base64/Base64Intrinsic.kt 64.00% <53.33%> (ø)
... and 5 more

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c7124a3...5c4db24. Read the comment docs.

@sgammon sgammon marked this pull request as ready for review May 31, 2024 21:12
@sgammon sgammon merged commit 158a52a into feat/entrypoint-v2 May 31, 2024
23 checks passed
@sgammon sgammon deleted the feat/native-transport-jni branch May 31, 2024 21:13
@sgammon sgammon mentioned this pull request May 31, 2024
@sgammon sgammon removed the ✋ embargoed PRs and issues that can't proceed because of some non-code condition label Jun 9, 2024
This was referenced Jun 13, 2024
@sgammon sgammon mentioned this pull request Jun 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Large PRs or issues with full-blown features 🧪 labs Experimental work module:server Modules, changes, and issues relating to Elide for servers transport Features related to native or NIO transport
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

None yet

1 participant