gyscos / gyscos/cursive

[FEATURE] Remove Apache-2.0 only transitive dependency blocking use in GPL2 projects

Open
#857 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
4.8k
Forks
270
Avg merge
5d 19h
Merged PRs (30d)
2

Description

**Is your feature request related to a problem? Please describe.**
I was planning on licensing my project using Cursive as GPL2 or later, to match other projects under the same organization, but after setting up `cargo deny`, I realized that despite being licensed under the MIT license, I can't actually use Cursive due to its dependency on `xi_unicode`.

**Describe the solution you'd like**
Drop the `xi_unicode` dependency and just use `unicode_segmentation` and `unicode_width` to implement `ChunkIterator`

**Additional context**
Totally understand if this is not something you want to do. If you're okay with this change, I may try doing it myself.

Contributor guide

Open the contributing guide

Research direction

Start by locating the Cargo manifest, references to xi_unicode, and the ChunkIterator implementation. Read how unicode_segmentation and unicode_width are currently used, then run the existing test suite after removing the dependency. Done means ChunkIterator still behaves correctly while xi_unicode is no longer a transitive dependency.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.