Created
August 29, 2018 18:16
-
-
Save monorkin/715f737a6fee2ce706840711776e7c89 to your computer and use it in GitHub Desktop.
Data gathered for the "Licensing software" article
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
language | agpl-3.0 | apache-2.0 | artistic-2.0 | bsd-2-clause | bsd-3-clause | cc0-1.0 | epl-1.0 | gpl-2.0 | gpl-3.0 | isc | lgpl-2.1 | lgpl-3.0 | mit | mpl-2.0 | unlicensed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ruby | 4513 | 42208 | 266 | 5463 | 13744 | 1682 | 533 | 20153 | 14975 | 797 | 1155 | 1617 | 269015 | 1878 | 2247 | |
Rust | 162 | 3188 | 21 | 328 | 714 | 83 | 8 | 665 | 1317 | 126 | 105 | 137 | 8108 | 492 | 297 | |
C | 3060 | 30281 | 468 | 8949 | 23247 | 996 | 802 | 71930 | 51125 | 1637 | 9981 | 6433 | 84365 | 1574 | 3057 | |
Python | 14102 | 79036 | 588 | 14517 | 46448 | 3891 | 1113 | 75928 | 82760 | 2503 | 5983 | 7923 | 209152 | 3630 | 6285 | |
PHP | 6205 | 29648 | 283 | 3141 | 23837 | 924 | 243 | 70814 | 36439 | 562 | 2209 | 4256 | 163556 | 1069 | 2306 | |
C++ | 3161 | 28707 | 387 | 7450 | 21009 | 909 | 584 | 64061 | 51985 | 877 | 8104 | 7311 | 83737 | 1599 | 3044 | |
Java | 4060 | 149147 | 550 | 3809 | 12911 | 1303 | 5360 | 32128 | 46739 | 609 | 4164 | 7993 | 98623 | 1753 | 3998 | |
Kotlin | 60 | 2722 | 12 | 51 | 139 | 21 | 14 | 141 | 597 | 26 | 13 | 60 | 2143 | 84 | 49 | |
Elixir | 76 | 740 | 18 | 126 | 363 | 13 | 9 | 496 | 328 | 93 | 34 | 70 | 4328 | 82 | 89 | |
Haskell | 384 | 1384 | 50 | 1259 | 12840 | 120 | 42 | 1809 | 3145 | 215 | 166 | 324 | 9041 | 170 | 429 | |
JavaScript | 18631 | 131794 | 1301 | 11185 | 43347 | 6148 | 2835 | 93429 | 75531 | 8551 | 3427 | 7858 | 693419 | 7339 | 9599 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"Ruby": [ | |
{ | |
"license": "lgpl-3.0", | |
"count": "1617" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "266" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "42208" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "5463" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "1682" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "1878" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "13744" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "1155" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "2247" | |
}, | |
{ | |
"license": "mit", | |
"count": "269015" | |
}, | |
{ | |
"license": "isc", | |
"count": "797" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "14975" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "533" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "4513" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "20153" | |
} | |
], | |
"Rust": [ | |
{ | |
"license": "agpl-3.0", | |
"count": "162" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "8" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "3188" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "328" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "83" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "492" | |
}, | |
{ | |
"license": "mit", | |
"count": "8108" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "1317" | |
}, | |
{ | |
"license": "isc", | |
"count": "126" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "714" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "137" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "21" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "665" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "297" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "105" | |
} | |
], | |
"C": [ | |
{ | |
"license": "gpl-2.0", | |
"count": "71930" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "9981" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "3057" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "996" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "1574" | |
}, | |
{ | |
"license": "isc", | |
"count": "1637" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "51125" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "468" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "6433" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "802" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "3060" | |
}, | |
{ | |
"license": "mit", | |
"count": "84365" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "23247" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "30281" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "8949" | |
} | |
], | |
"Python": [ | |
{ | |
"license": "artistic-2.0", | |
"count": "588" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "7923" | |
}, | |
{ | |
"license": "mit", | |
"count": "209152" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "1113" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "14102" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "75928" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "79036" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "14517" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "3891" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "3630" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "46448" | |
}, | |
{ | |
"license": "isc", | |
"count": "2503" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "82760" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "5983" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "6285" | |
} | |
], | |
"PHP": [ | |
{ | |
"license": "apache-2.0", | |
"count": "29648" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "3141" | |
}, | |
{ | |
"license": "isc", | |
"count": "562" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "36439" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "70814" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "23837" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "283" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "4256" | |
}, | |
{ | |
"license": "mit", | |
"count": "163556" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "924" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "1069" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "2209" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "2306" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "243" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "6205" | |
} | |
], | |
"C++": [ | |
{ | |
"license": "isc", | |
"count": "877" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "51985" | |
}, | |
{ | |
"license": "mit", | |
"count": "83737" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "584" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "3161" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "28707" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "7450" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "387" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "7311" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "909" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "1599" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "8104" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "3044" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "64061" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "21009" | |
} | |
], | |
"Java": [ | |
{ | |
"license": "artistic-2.0", | |
"count": "550" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "7993" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "4164" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "3998" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "1303" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "1753" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "12911" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "5360" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "4060" | |
}, | |
{ | |
"license": "isc", | |
"count": "609" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "46739" | |
}, | |
{ | |
"license": "mit", | |
"count": "98623" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "149147" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "3809" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "32128" | |
} | |
], | |
"Kotlin": [ | |
{ | |
"license": "bsd-3-clause", | |
"count": "139" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "84" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "21" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "49" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "13" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "60" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "12" | |
}, | |
{ | |
"license": "mit", | |
"count": "2143" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "141" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "597" | |
}, | |
{ | |
"license": "isc", | |
"count": "26" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "60" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "14" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "2722" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "51" | |
} | |
], | |
"Elixir": [ | |
{ | |
"license": "gpl-2.0", | |
"count": "496" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "740" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "126" | |
}, | |
{ | |
"license": "isc", | |
"count": "93" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "328" | |
}, | |
{ | |
"license": "mit", | |
"count": "4328" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "34" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "89" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "363" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "76" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "9" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "18" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "70" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "82" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "13" | |
} | |
], | |
"Haskell": [ | |
{ | |
"license": "agpl-3.0", | |
"count": "384" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "42" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "12840" | |
}, | |
{ | |
"license": "isc", | |
"count": "215" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "3145" | |
}, | |
{ | |
"license": "apache-2.0", | |
"count": "1384" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "1259" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "120" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "170" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "324" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "50" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "166" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "429" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "1809" | |
}, | |
{ | |
"license": "mit", | |
"count": "9041" | |
} | |
], | |
"JavaScript": [ | |
{ | |
"license": "apache-2.0", | |
"count": "131794" | |
}, | |
{ | |
"license": "bsd-2-clause", | |
"count": "11185" | |
}, | |
{ | |
"license": "gpl-2.0", | |
"count": "93429" | |
}, | |
{ | |
"license": "isc", | |
"count": "8551" | |
}, | |
{ | |
"license": "gpl-3.0", | |
"count": "75531" | |
}, | |
{ | |
"license": "epl-1.0", | |
"count": "2835" | |
}, | |
{ | |
"license": "agpl-3.0", | |
"count": "18631" | |
}, | |
{ | |
"license": "cc0-1.0", | |
"count": "6148" | |
}, | |
{ | |
"license": "mpl-2.0", | |
"count": "7339" | |
}, | |
{ | |
"license": "bsd-3-clause", | |
"count": "43347" | |
}, | |
{ | |
"license": "lgpl-2.1", | |
"count": "3427" | |
}, | |
{ | |
"license": "unlicense", | |
"count": "9599" | |
}, | |
{ | |
"license": "mit", | |
"count": "693419" | |
}, | |
{ | |
"license": "artistic-2.0", | |
"count": "1301" | |
}, | |
{ | |
"license": "lgpl-3.0", | |
"count": "7858" | |
} | |
] | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# frozen_string_literal: true | |
require 'json' | |
require 'csv' | |
data = File.read('data.json') | |
data = JSON.parse(data) | |
data = | |
data.each_with_object({}) do |(language, licenses), result| | |
result[language] = | |
licenses.each_with_object({}) do |license, object| | |
name = license['license'] | |
count = license['count'].to_i | |
object[name] = count | |
end | |
end | |
licenses = | |
data.flat_map do |_language, license_counts| | |
license_counts.keys | |
end.uniq.sort! | |
file = File.open('data.csv', 'w+') | |
CSV(file) do |csv| | |
csv << ['language', *licenses] | |
data.each do |language, license_counts| | |
counts = | |
licenses.map do |license| | |
license_counts[license] || 0 | |
end | |
csv << [language, *counts] | |
end | |
end | |
file.close |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT licenses.license AS license, COUNT(licenses.repo_name) AS count | |
FROM [bigquery-public-data:github_repos.licenses] AS licenses | |
JOIN [bigquery-public-data:github_repos.languages] AS languages ON licenses.repo_name = languages.repo_name | |
WHERE languages.language.name = 'JavaScript' | |
GROUP BY license |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment