Skip to content

Comments

Update and replace unmaintained crates with changelog#739

Merged
Riey merged 15 commits intoRiey:developfrom
kernalix7:develop
Jan 19, 2026
Merged

Update and replace unmaintained crates with changelog#739
Riey merged 15 commits intoRiey:developfrom
kernalix7:develop

Conversation

@kernalix7
Copy link
Contributor

@kernalix7 kernalix7 commented Jan 15, 2026

Summary

Update crate versions:

  • x11rb 0.11 → 0.13
  • xim 0.2 → 0.5
  • image 0.24 → 0.25
  • imageproc 0.23 → 0.26
  • mio 0.7 → 1.0
  • egui/eframe 0.20 → 0.33

Replace unmaintained crates:

  • rusttype → ab_glyph (font rendering)
  • mio-timerfd → timerfd-mio (mio 1.0 compatible)
  • unic → unicode-properties (emoji detection)

API migrations:

  • kime-xim: Use ab_glyph FontArc/PxScale instead of rusttype
  • kime-wayland: Adapt to timerfd-mio API changes
    • TimerFd::new() instead of TimerFd::new(ClockId::Monotonic)
    • set_timeout_oneshot() instead of set_timeout()/disarm()
    • set_timeout_interval(interval, interval) signature change
  • kime-candidate-window: Migrate to egui 0.33 API
    • ctx.input(|i| ...) closure pattern
    • ViewportCommand::Close instead of frame.close()
    • ViewportBuilder for window options
    • Arc wrapper requirement
  • kime-engine-dict: Use unicode_properties::UnicodeEmoji trait

Note

Most of crates is updated/replaced to latest release. without wayland parts.
wayland 부분 제외하고 우선 대부분의 crates 업데이트/교체 진행 완료되었습니다.

Checklist

  • I have documented my changes properly to adequate places
  • I have updated the docs/CHANGELOG.md

Update crate versions:
- x11rb 0.11 → 0.13
- xim 0.2 → 0.4
- image 0.24 → 0.25
- imageproc 0.23 → 0.26
- mio 0.7 → 1.0
- egui/eframe 0.20 → 0.33

Replace unmaintained crates:
- rusttype → ab_glyph (font rendering)
- mio-timerfd → timerfd-mio (mio 1.0 compatible)
- unic → unicode-properties (emoji detection)

API migrations:
- kime-xim: Use ab_glyph FontArc/PxScale instead of rusttype
- kime-wayland: Adapt to timerfd-mio API changes
  - TimerFd::new() instead of TimerFd::new(ClockId::Monotonic)
  - set_timeout_oneshot() instead of set_timeout()/disarm()
  - set_timeout_interval(interval, interval) signature change
- kime-candidate-window: Migrate to egui 0.33 API
  - ctx.input(|i| ...) closure pattern
  - ViewportCommand::Close instead of frame.close()
  - ViewportBuilder for window options
  - Arc<FontData> wrapper requirement
- kime-engine-dict: Use unicode_properties::UnicodeEmoji trait
@kernalix7 kernalix7 closed this Jan 15, 2026
@kernalix7 kernalix7 reopened this Jan 15, 2026
  - Add NCSA license to allow list
  - Add license clarification for epaint_default_fonts
@kernalix7
Copy link
Contributor Author

deny에 작성되지 않은 라이선스 타입과 github ci rust 버전상의 이슈로 수정중입니다.

- egui/eframe: 0.33 → 0.31 (egui 0.33 requires Rust 1.88, CI uses 1.86)
- imageproc: 0.26 → 0.25 (0.26 requires Rust 1.87)
- xim: 0.4 → 0.5 (0.4 has Feedback::Underline bug)
ICU crates (icu_collections, icu_normalizer, etc.) use Unicode-3.0 license
which is OSI-approved and compatible with GPL-3.0.
- cargo-deny v0.16+ format
@kernalix7
Copy link
Contributor Author

It's hard to build on github CI,,.... maybe i'm not good at github yet... :(
sry about commit log messy
깃헙 CI 맞추기 힘드네요.... 아직 깃헙 익숙하지가 않아서리.. :(
커밋 로그만 엄청 지저분해졌네요

@kernalix7
Copy link
Contributor Author

anyway, I'm done at update/change some dependency and works fine with my environment (openSUSE + KDE + wayland)
wayland parts of source is veeeerry hard maybe,,, i ll do when i have a time. Thanks for good software.
일단, 의존성들 바꾸거나 업데이트는 끝났습니다. 제 리눅스 환경에서 빌드한 패키지도 큰 문제 안보이고 있고요.
wayland 부분은 말씀하신대로 진짜 큰 작업이 될 것 같아서 시간날 때 천천히 해보도록 하겠습니다.
이런 좋은 프로그램 만들어주셔서 감사드립니다!

@kernalix7
Copy link
Contributor Author

kime-wayland is suddenly dead when using. i ll find the reason and fix it
kime-wayland 프로세스가 갑자기 죽어버리네요, 특정 상황은 아니고 사용 중 발생합니다. 이전 pr에서는 없던 문제라 확인해보겠습니다.

- Use disarm() directly instead of set_timeout_oneshot(Duration::ZERO)
- Handle timer.read() returning 0 in non-blocking mode (spurious wakeup)
- Add error logging when input_method_v2 fails before falling back to v1
disarm is call unwrap() so rollback to set_timeout_oneshot
@Riey
Copy link
Owner

Riey commented Jan 16, 2026

It's hard to build on github CI,,.... maybe i'm not good at github yet... :( sry about commit log messy 깃헙 CI 맞추기 힘드네요.... 아직 깃헙 익숙하지가 않아서리.. :( 커밋 로그만 엄청 지저분해졌네요

기본적으로 squash후에 커밋하므로 지저분해지는건 신경 안쓰셔도 됩니다. 만약 squash가 마음에 안드시면 직접 rebase후에 말씀주시면 그대로 push 해드립니다

kime-wayland is suddenly dead when using. i ll find the reason and fix it kime-wayland 프로세스가 갑자기 죽어버리네요, 특정 상황은 아니고 사용 중 발생합니다. 이전 pr에서는 없던 문제라 확인해보겠습니다.

지금 커밋에선 해결이 된건가요?

@kernalix7
Copy link
Contributor Author

기본적으로 squash후에 커밋하므로 지저분해지는건 신경 안쓰셔도 됩니다. 만약 squash가 마음에 안드시면 직접 rebase후에 말씀주시면 그대로 push 해드립니다

아하! 그렇군요 ㅎㅎ

지금 커밋에선 해결이 된건가요?

네 마지막 커밋 후 지금 사용시에 문제 없이 동작중입니다.

3.1.1에서도 정말 가끔씩 나타나는 현상이었던걸 보면 지금 PR이랑 크게 영향 없어 보이긴 합니다.
패키징하고 재설치 사이에 재부팅이랑 KDE virtual keyboard에서 none 했다가 다시 선택하니 그 이후로는 문제 없네요. 시스템 찌꺼기나 뭔가 꼬였나 봅니다.
그래도 wayland 건들 때 한번 봐야겠네요, 오류 재현이 가능할지 모르겠지만..

Copy link
Contributor Author

@kernalix7 kernalix7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

timerfd-mio 의 disarm()은 .unwrap()를 발생시켜 에러시 panic.
set_timeout_oneshot, let _으로 동일하게 무시.

@Riey Riey merged commit 203dfd8 into Riey:develop Jan 19, 2026
4 checks passed
kernalix7 added a commit to kernalix7/kime that referenced this pull request Jan 19, 2026
Update and replace unmaintained crates with changelog (Riey#739)
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