Open-source licenses filter algorithm library written in TypeScript
npm i license-filter
import {
FeatureAttitude,
InfectionRange,
filterLicenses
} from 'license-filter';
const list = filterLicenses({
popularity: FeatureAttitude.Negative,
reuseCondition: FeatureAttitude.Positive,
infectionIntensity: FeatureAttitude.Positive,
infectionRange: InfectionRange.Module,
jurisdiction: FeatureAttitude.Undefined,
patentStatement: FeatureAttitude.Positive,
patentRetaliation: FeatureAttitude.Positive,
enhancedAttribution: FeatureAttitude.Positive,
privacyLoophole: FeatureAttitude.Negative,
marketingEndorsement: FeatureAttitude.Negative
});
console.log(list); // filtered licenses
Mark the weight of various Open-source licenses according to the above Evaluation dimensions:
+1
: clearly supports the feature of this dimension0
: no explicit mention of the dimension's feature-1
: clearly oppose the characteristics of this dimensionInput the user's Attitude towards the above dimensional features:
+1
: definitely need the feature of this dimension0
: insensitive to the feature of this dimension-1
: explicitly reject the feature of this dimensionCalculate each license by the following formula:
Total weight per license = Dimension weight item x Dimension user attitude value
All licenses are ranked in reverse order of the total weight in this screening, which is the result
http://oss-watch.ac.uk/apps/licdiff/
https://kaiyuanshe.cn/license-tool/
https://github.com/luojiyin1987/license-tool
https://mp.weixin.qq.com/s/ja_w-2NNSIKcO4vv7iN5vg
Generated using TypeDoc