Comments (8)
@cmr This crate is already dual licensed under MIT and the UNLICENSE. Is there any particular reason why the UNLICENSE is not suitable for your purposes? (Similarly for BurntSushi/tabwriter#5, and all my crates.)
from chan.
@BurntSushi oops, my script was a little indescriminate about hitting MIT dual-licensed with other things.
I would prefer CC0 to the UNLICENSE though, I'm not sure UNLICENSE'd components would be able to be included in the standard distribution, and I won't include UNLICENSE or CC0'd components in Robigalia (which is a shame, because I'd like to use this for our channels atm)
from chan.
and I won't include UNLICENSE components in Robigalia
It's dual licensed. You can elect to use chan
under the terms of the MIT license.
from chan.
The runtime (currently unreleased), "phoma", is licensed the same as the Rust standard library, MIT/Apache-2.0, and I won't include components which are not availble under either the MIT or Apache-2.0 at the licensees choice, or licenses with Apache-2.0 compatible terms that don't require redistributing a license document (for example, the CC0 is not compatible here) at users option. The patent license Apache-2.0 grants is not included with the MIT license (which is primarily why MIT is GPLv2 compatible and Apache-2.0 is not).
from chan.
But chan
is available under the MIT license, so I sincerely do not understand your objection. You can elect to use chan
under the terms of either the MIT or UNLICENSE licenses.
from chan.
Ignoring the UNLICENSE, I can't then say to my users, "You can use phoma under the terms of either the MIT or Apache-2.0 licenses" if it included chan
, since they cannot use chan
under the terms of the Apache-2.0 license (since the MIT license does not include the patent grant). It would effectively make phoma MIT-only. Copyright isn't the only issue here, patent law comes into play as well.
from chan.
OK, so I think what you're saying is that all libraries you use must be MIT/Apache-2.0, or alternatively, MIT/X where X has Apache-2.0 compatible terms? Is my understanding correct? And you're also claiming that the CC0 is suitable as X but the UNLICENSE is not. Could you explain why that is? (Or, if it's complicated, a link to someone else explaining it would be fine!)
from chan.
Sorry, I had a misunderstanding and have since edited the comments to note that CC0 is not suitable as X.
It's not MIT/X, really, it's X where X is compatible with both the MIT and Apache-2.0. For example, the 2-clause BSD license would suffice for the "MIT" compatability.
I immediately regret using the word "compatible" though, as it's not quite precise here - the MIT is compatible with the Apache-2.0 license, in that you can freely combine two works that are MIT licensed and Apache-2.0 licensed. What I cannot do, though, is say to my users "If you use phoma, choose either MIT or Apache-2.0, and if you chose Apache-2.0 you only need to distribute a single copy of the Apache-2.0 license with the binary form", and instead need to have a file like https://github.com/rust-lang/rust/blob/master/COPYRIGHT that needs to be redistributed listing all the MIT, BSD, etc copyright notices.
It's minor, and I'm not entirely convinced that I want to stick to my guns on this one, but it certainly seems nice to me.
from chan.
Related Issues (19)
- remove hyper dev dependency HOT 4
- Possible memory leak in `tick` HOT 2
- [feature request] re-expose try_recv() HOT 8
- How to chan_select over multiple chans that will terminate? HOT 1
- Using chan_select! requires values to be 'static HOT 3
- Add timeout-able methods HOT 1
- doesn't seem to work with `fork()` HOT 2
- Select integration with std lib mpsc api HOT 4
- Allow chan_select to generate no-op None variants HOT 2
- Sender::send(t) -> Result<(), SendError> HOT 16
- Deadlock with select-send and select-recv HOT 2
- crossbeam-channel – EOL chan HOT 6
- Broadcast to all consumers HOT 4
- Return value from `chan_select!` expression HOT 2
- chan::async() conflicts with Rust 2018 Edition HOT 6
- I think it's butter to return a Result for invalid add HOT 5
- Async channel is blocking program HOT 9
- All Notifier subscriptions made in select.rs appear to be leaked HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chan.