Skip to content

feat: jvm 바인딩 추가 - #181

Open
kdyann wants to merge 1 commit into
dev-five-git:mainfrom
kdyann:feat/jvm-binding
Open

feat: jvm 바인딩 추가#181
kdyann wants to merge 1 commit into
dev-five-git:mainfrom
kdyann:feat/jvm-binding

Conversation

@kdyann

@kdyann kdyann commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

braillify 라이브러리를 Java 및 Kotlin 환경에서 사용할 수 있도록 JVM 바인딩을 추가합니다.

주요 구성

  • Rust 코어를 직접 호출하는 JNI 바인딩
  • Java와 Kotlin에서 공통으로 사용할 수 있는 API 제공
  • encode, translateToUnicode, translateToBrailleFont 지원
  • 플랫폼별 네이티브 라이브러리를 포함한 Fat JAR 생성
  • Linux x64/ARM64, macOS Intel/ARM, Windows x64 지원
  • Rust 오류 및 패닉을 JVM 예외로 변환
  • 실행 환경에 맞는 네이티브 라이브러리 자동 로딩
  • Java 8 이상 지원

배포

JVM에서는 사용자가 JAR을 직접 관리하는 것보다 Gradle 또는 Maven에서 의존성 한 줄로 추가하는 방식이 편할 것 같아 Maven Central 배포로 구현했습니다.

Maven Central 배포를 포함하는 현재 방향이 괜찮을지, 아니면 GitHub Release artifact만 제공하는 편이 나을지 의견 부탁드립니다.

Maven Central 방식을 유지한다면 프로젝트에서 사용할 namespace와 groupId 확인이 필요합니다.

테스트

  • Rust JNI 단위 테스트 9개
  • Java/JNI 통합 테스트 22개

@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 3.77358% with 51 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
packages/jvm/src/lib.rs 3.77% 51 Missing ⚠️
Files with missing lines Coverage Δ
packages/jvm/src/lib.rs 3.77% <3.77%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@owjs3901

Copy link
Copy Markdown
Contributor

커버리지 이슈를 확인해주세요

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

Successfully merging this pull request may close these issues.

2 participants