camptocamp / tilecloud Goto Github PK
View Code? Open in Web Editor NEWA powerful utility for generating, managing, transforming, and visualizing map tiles in multiple formats.
License: BSD 2-Clause "Simplified" License
A powerful utility for generating, managing, transforming, and visualizing map tiles in multiple formats.
License: BSD 2-Clause "Simplified" License
The bug is:
Options are:
SQLite is wonderful, but sometimes we hit the limits of a filesystem database with a single lock :-)
from itertools import imap
is happening at the top of tc-copy
. imap is not available in Python 3.
I've some problems figuring out the meaning of the 6 values of the bounding pyramid. A explanation of the values in the help section of tc-copy would be great. Or some more examples in the ReadMe of tilecloud.
An option to enter Lat/Long bounds would help a lot.
Especially the consumer group feature: https://redis.io/topics/streams-intro
This would be more reliable that the current implementation.
TileJSONTileStore
uses BoundingPyramid.from_wgs84
, which was removed with 969b36f.
Using view, see https://github.com/mapbox/node-mbtiles/blob/master/bin/mbcompact
This issue is the dashboard used by GHCI modules.
$ ./tc-info -t bounding-pyramid -r ~/haiti-terrain.mbtiles
5/8/13:+3/+2
6/17/27:+5/+3
7/34/54:+9/+6
8/69/109:+16/+10
9/138/219:+31/+19
10/276/439:+64/+36
11/550/878:+105/+75
12/1195/1806:+80/+40
13/2395/3622:+155/+70
14/4790/7244:+300/+140
15/9585/14498:+595/+270
16/19175/29001:+1180/+535
$ ./tc-info -t estimate-completion -b 16/19175/29001:5/+1180/+535 haiti-terrain.mbtiles
5 6/4 (150%)
6 15/6 (250%)
7 54/12 (450%)
8 160/28 (571%)
9 589/72 (818%)
10 2304/210 (1097%)
11 7875/702 (1121%)
12 3200/2660 (120%)
13 10850/10200 (106%)
14 42000/40095 (104%)
15 160650/158979 (101%)
16 631300/631300 (100%)
By default, tc-viewer
requests each tile from the TileStore when it is requested. Sometimes it is desirable to minimise the number of requests to the underlying TileStore, even if this means increased memory consumption (tc-viewer
is a development tool). So, tc-viewer
should have a --cache
option that causes it to cache requested tiles in memory rather than requesting them from the underlying TileStore each time.
...see http://content.stamen.com/log_maps
TileCloud should be able to generate interest maps. TileCloud can already read log files, so it should simply be an extension of MaskTileStore to count the number of hits on different tiles.
Act as a proxy behind a slow store, example:
slowstore = TileStore(...)
store = CachingTileStore(store=slowstore, cache=DictTileStore())
When running the basic "quick demo" I'm getting:
Sorry, the requested URL 'http://localhost:8080/' caused an error:
Template 'index' not found.
My tilecloud package seems to be complete: listing
TileCloud can already be uploaded to pypi. This works. But there are still issues when using TileCloud after an installation from pypi. One issue is that the templates aren't there.
The Getting started section leaves out the actual install of tilecloud. "pip install tilecloud" should be added someplace.
This repo does not seem to include a setup.py file, or anything to install. Nor does the repo contain run-in-place python code.
All of the references to "./tc-viewer" and "./tc-info" do not work. The files in the git repo can't be run directly, end in .py and have _ where the - is. After a "pip install tilecloud" the commands do work but only without the preceding "./".
Now I'm also having trouble with the suggested demos. But I'll report back on that once I have spent more time to see if the installation is actually ok.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates are awaiting their schedule. Click on a checkbox to get an update now.
Shapely
, types-boto
)Shapely
, types-boto
, types-redis
)Shapely
, boto3
, types-boto
, types-redis
)Shapely
, boto3
, types-boto
, types-redis
)These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.
Pillow
, azure-identity
, azure-storage-blob
, boto3
, ghcr.io/osgeo/gdal
, pytest
, requests
, types-requests
)asdf
.tool-versions
python 3.8.19
docker-compose
docker-compose.yaml
redis 5
dockerfile
Dockerfile
osgeo/gdal 3.2.0
github-actions
.github/workflows/backport.yaml
ubuntu 22.04
.github/workflows/clean.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
ubuntu 22.04
.github/workflows/main.yaml
actions/checkout v2
camptocamp/initialise-gopass-summon-action v2
actions/upload-artifact v4
ubuntu 22.04
.github/workflows/pull-request-automation.yaml
actions/github-script v7
actions/github-script v7
actions/github-script v7
ubuntu 22.04
pip_requirements
ci/requirements.txt
c2cciutils ==1.1.44
oauthlib >=3.2.1
setuptools >=65.5.1
pip >=21.1
certifi >=2022.12.7
cryptography >=39.0.1
requests >=2.31.0
pygments >=2.15.0
urllib3 >=1.26.19
requirements-dev.txt
prospector ==1.3.1
mypy ==0.812
pytest ==6.2.5
pytest-cov ==2.11.1
requirements-publish.txt
twine ==3.4.2
requirements.txt
azure-storage-blob ==12.13.1
boto3 ==1.17.112
bottle ==0.12.25
c2cwsgiutils >=4.0.1
Pillow ==10.3.0
pyproj ==3.0.1
pyramid ==2.0.2
certifi >=2022.12.7
setuptools >=65.5.1
cryptography >=39.0.1
requests >=2.31.0
urllib3 ==1.26.19
pip_setup
setup.py
requests >=1.0
redis >=2
pre-commit
.pre-commit-config.yaml
pre-commit/mirrors-prettier v2.7.1
pyenv
.python-version
python 3.8
regex
ci/config.yaml
camptocamp/c2cciutils 1.1.44
docker-compose
docker-compose.yaml
redis 5
dockerfile
Dockerfile
osgeo/gdal 3.2.0
github-actions
.github/workflows/backport.yaml
ubuntu 22.04
.github/workflows/clean.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
ubuntu 22.04
.github/workflows/main.yaml
actions/checkout v2
camptocamp/initialise-gopass-summon-action v2
actions/upload-artifact v4
ubuntu 22.04
.github/workflows/pull-request-automation.yaml
actions/github-script v7
actions/github-script v7
actions/github-script v7
ubuntu 22.04
pip_requirements
ci/requirements.txt
c2cciutils ==1.1.44
oauthlib >=3.2.1
setuptools >=65.5.1
certifi >=2022.12.7
cryptography >=39.0.1
requests >=2.31.0
urllib3 >=1.26.19
requirements-dev.txt
prospector ==1.7.7
pylint ==2.12.2
pytest ==7.1.3
pytest-cov ==3.0.0
mypy ==0.950
types-boto ==2.49.18.20240205
types-redis ==4.2.8
requirements-publish.txt
twine ==3.8.0
requirements.txt
azure-storage-blob ==12.13.1
azure-identity ==1.16.1
boto3 ==1.20.54
bottle ==0.12.25
c2cwsgiutils >=4.0.1
Pillow ==10.3.0
pyproj ==3.3.1
pyramid ==2.0.2
oauthlib >=3.2.1
pyjwt >=2.4.0
setuptools >=65.5.1
certifi >=2022.12.7
cryptography >=39.0.1
requests >=2.31.0
urllib3 ==1.26.19
pip_setup
setup.py
requests >=1.0
redis >=2
pre-commit
.pre-commit-config.yaml
pre-commit/mirrors-prettier v2.7.1
regex
ci/config.yaml
camptocamp/c2cciutils 1.1.44
docker-compose
docker-compose.yaml
redis 7
dockerfile
Dockerfile
osgeo/gdal 3.2.0
github-actions
.github/workflows/backport.yaml
ubuntu 20.04
.github/workflows/clean.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
ubuntu 22.04
.github/workflows/main.yaml
actions/checkout v3
camptocamp/initialise-gopass-summon-action v2
actions/upload-artifact v3
actions/upload-artifact v4
ubuntu 20.04
.github/workflows/pull-request-automation.yaml
actions/github-script v7
actions/github-script v7
actions/github-script v7
ubuntu 20.04
pep621
pyproject.toml
poetry-core >=1.3.0
poetry-plugin-tweak-dependencies-version >=1.1.0
pip_requirements
ci/requirements.txt
c2cciutils ==1.4.20
attrs ==23.2.0
certifi >=2024.7.4
cryptography >=41.0.6
requests >=2.31.0
idna >=3.7
urllib3 >=1.26.19
zipp >=3.19.1
requirements.txt
poetry ==1.3.2
poetry-plugin-export ==1.2.0
poetry-plugin-tweak-dependencies-version ==1.2.1
poetry-dynamic-versioning ==0.21.5
pip ==23.3.2
requests >=2.31.0
urllib3 >=1.26.19
certifi >=2024.7.4
jinja2 >=3.1.3
idna >=3.7
cryptography >=42.0.8
zipp >=3.19.1
poetry
pyproject.toml
azure-storage-blob 12.14.1
azure-identity 1.16.1
boto3 1.26.165
bottle 0.12.25
c2cwsgiutils 5.1.7
Pillow 10.3.0
pyproj 3.4.1
pyramid 2.0.2
requests 2.32.3
redis 4.4.4
certifi 2024.7.4
cryptography 42.0.8
msal 1.24.1
urllib3 1.26.19
idna 3.7
webob 1.8.8
prospector 1.7.7
pytest 7.2.2
pytest-cov 4.0.0
types-boto 2.49.18.20240205
types-redis 4.3.21.7
types-requests 2.28.11.17
pycairo 1.23.0
Shapely 2.0.5
pre-commit
.pre-commit-config.yaml
pre-commit/mirrors-prettier v2.7.1
regex
.pre-commit-config.yaml
prettier 2.8.8
ci/config.yaml
camptocamp/c2cciutils 1.4.20
docker-compose
docker-compose.yaml
redis 7
dockerfile
Dockerfile
ghcr.io/osgeo/gdal ubuntu-small-3.7.3
github-actions
.github/workflows/backport.yaml
ubuntu 20.04
.github/workflows/clean.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
ubuntu 22.04
.github/workflows/main.yaml
actions/checkout v3
camptocamp/initialise-gopass-summon-action v2
actions/cache v3
actions/upload-artifact v4
actions/upload-artifact v4
ubuntu 22.04
.github/workflows/pull-request-automation.yaml
actions/github-script v7
actions/github-script v7
actions/github-script v7
ubuntu 20.04
pep621
pyproject.toml
poetry-core >=1.3.0
poetry-plugin-tweak-dependencies-version >=1.1.0
pip_requirements
ci/requirements.txt
c2cciutils ==1.5.13
pre-commit ==3.3.3
cryptography >=41.0.0
requests >=2.31.0
setuptools >=65.5.1
urllib3 >=1.26.17
idna >=3.7
zipp >=3.19.1
requirements.txt
poetry ==1.5.1
poetry-plugin-export ==1.4.0
poetry-plugin-tweak-dependencies-version ==1.4.0
poetry-dynamic-versioning ==0.22.0
pip ==23.3.2
requests >=2.31.0
certifi >=2022.12.7
urllib3 >=1.26.17
jinja2 >=3.1.3
idna >=3.7
zipp >=3.19.1
poetry
pyproject.toml
azure-storage-blob 12.16.0
azure-identity 1.16.1
boto3 1.26.165
bottle 0.12.25
prometheus_client 0.17.1
Pillow 10.3.0
pyproj 3.5.0
pyramid 2.0.2
requests 2.32.3
redis 4.5.5
cryptography 42.0.8
certifi 2024.7.4
msal 1.24.1
urllib3 1.26.19
idna 3.7
webob 1.8.8
prospector 1.10.3
pytest 7.3.2
pytest-cov 4.1.0
types-boto 2.49.18.20240806
types-redis 4.5.5.2
pycairo 1.23.0
Shapely 2.0.5
pre-commit
.pre-commit-config.yaml
pre-commit/mirrors-prettier v2.7.1
pre-commit/pre-commit-hooks v4.4.0
sbrunner/hooks 0.5.0
codespell-project/codespell v2.2.6
shellcheck-py/shellcheck-py v0.9.0.6
jumanjihouse/pre-commit-hooks 3.0.0
python-jsonschema/check-jsonschema 0.23.3
sirwart/ripsecrets v0.1.8
PyCQA/autoflake v2.1.1
asottile/pyupgrade v3.4.1
PyCQA/isort 5.12.0
psf/black 23.3.0
regex
.pre-commit-config.yaml
poetry 1.5.1
poetry 1.5.1
pyjson5 1.6.6
ci/config.yaml
camptocamp/c2cciutils 1.5.13
docker-compose
docker-compose.yaml
redis 7
dockerfile
Dockerfile
ghcr.io/osgeo/gdal ubuntu-small-3.7.3
github-actions
.github/workflows/backport.yaml
ubuntu 22.04
.github/workflows/clean.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
ubuntu 22.04
.github/workflows/main.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
actions/cache v3
actions/upload-artifact v4
actions/upload-artifact v4
ubuntu 22.04
.github/workflows/pull-request-automation.yaml
actions/github-script v7
actions/github-script v7
actions/github-script v7
ubuntu 22.04
pep621
pyproject.toml
poetry-core >=1.3.0
poetry-plugin-tweak-dependencies-version >=1.1.0
pip_requirements
ci/requirements.txt
c2cciutils ==1.6.22
pre-commit ==3.5.0
poetry-dynamic-versioning ==1.1.1
poetry-plugin-export ==1.6.0
poetry-plugin-tweak-dependencies-version ==1.5.2
poetry-plugin-drop-python-upper-constraint ==0.1.0
certifi >=2024.7.4
setuptools >=65.5.1
jinja2 >=3.1.3
cryptography >=42.0.2
idna >=3.7
zipp >=3.19.1
requirements.txt
poetry ==1.6.1
poetry-plugin-export ==1.6.0
poetry-plugin-tweak-dependencies-version ==1.5.2
poetry-dynamic-versioning ==1.1.1
pip ==23.3.2
certifi >=2024.7.4
jinja2 >=3.1.3
idna >=3.7
zipp >=3.19.1
poetry
pyproject.toml
azure-storage-blob 12.18.3
azure-identity 1.16.1
boto3 1.28.85
bottle 0.12.25
prometheus_client 0.18.0
Pillow 10.3.0
pyproj 3.6.1
pyramid 2.0.2
requests 2.32.3
redis 5.0.8
cryptography 42.0.8
idna 3.7
urllib3 1.26.19
certifi 2024.7.4
webob 1.8.8
prospector 1.10.3
prospector-profile-duplicated 0.3.0
prospector-profile-utils 1.1.0
pytest 7.4.4
pytest-cov 4.1.0
types-boto 2.49.18.20240205
types-redis 4.6.0.20240726
pycairo 1.25.1
Shapely 2.0.5
pre-commit
.pre-commit-config.yaml
pre-commit/mirrors-prettier v3.0.3
pre-commit/pre-commit-hooks v4.5.0
sbrunner/hooks 0.5.0
codespell-project/codespell v2.2.6
shellcheck-py/shellcheck-py v0.9.0.6
jumanjihouse/pre-commit-hooks 3.0.0
python-jsonschema/check-jsonschema 0.27.4
sirwart/ripsecrets v0.1.8
PyCQA/autoflake v2.2.1
asottile/pyupgrade v3.15.2
PyCQA/isort 5.12.0
psf/black 23.10.1
sbrunner/jsonschema-validator 0.1.0
regex
.pre-commit-config.yaml
poetry 1.6.1
poetry 1.6.1
pyjson5 1.6.6
ci/config.yaml
camptocamp/c2cciutils 1.6.22
docker-compose
docker-compose.yaml
redis 7
dockerfile
Dockerfile
ghcr.io/osgeo/gdal ubuntu-small-3.8.5
github-actions
.github/workflows/audit.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
andstor/file-existence-action v3
asdf-vm/actions v3
andstor/file-existence-action v3
ubuntu 22.04
.github/workflows/backport.yaml
ubuntu 22.04
.github/workflows/clean.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
ubuntu 22.04
.github/workflows/main.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
actions/cache v4
actions/upload-artifact v4
actions/upload-artifact v4
ubuntu 22.04
.github/workflows/pull-request-automation.yaml
actions/github-script v7
actions/github-script v7
actions/github-script v7
ubuntu 22.04
pep621
pyproject.toml
poetry-core >=1.3.0
poetry-plugin-tweak-dependencies-version >=1.1.0
pip_requirements
ci/requirements.txt
c2cciutils ==1.6.22
pre-commit ==3.7.1
poetry-dynamic-versioning ==1.4.0
poetry-plugin-export ==1.8.0
poetry-plugin-tweak-dependencies-version ==1.5.2
poetry-plugin-drop-python-upper-constraint ==0.1.0
importlib-metadata <8.0.0
certifi >=2024.7.4
zipp >=3.19.1
cryptography >=42.0.8
idna >=3.7
jinja2 >=3.1.4
requirements.txt
poetry ==1.8.3
poetry-plugin-export ==1.8.0
poetry-plugin-tweak-dependencies-version ==1.5.2
poetry-dynamic-versioning ==1.4.0
poetry-plugin-drop-python-upper-constraint ==0.1.0
certifi >=2024.7.4
zipp >=3.19.1
idna >=3.7
jinja2 >=3.1.4
poetry
pyproject.toml
azure-storage-blob 12.19.1
azure-identity 1.16.1
boto3 1.34.151
bottle 0.12.25
prometheus_client 0.20.0
Pillow 10.3.0
pyproj 3.6.1
pyramid 2.0.2
requests 2.32.3
redis 5.0.8
certifi 2024.7.4
webob 1.8.8
prospector 1.10.3
prospector-profile-duplicated 1.5.0
prospector-profile-utils 1.7.2
pytest 8.2.2
pytest-cov 5.0.0
types-boto 2.49.18.20240205
types-redis 4.6.0.20240726
types-requests 2.31.0.20240406
pycairo 1.26.1
Shapely 2.0.5
urllib3 2.2.2
pre-commit
.pre-commit-config.yaml
pre-commit/mirrors-prettier v3.1.0
pre-commit/pre-commit-hooks v4.6.0
sbrunner/hooks 1.0.0
codespell-project/codespell v2.3.0
shellcheck-py/shellcheck-py v0.10.0.1
jumanjihouse/pre-commit-hooks 3.0.0
python-jsonschema/check-jsonschema 0.28.6
sirwart/ripsecrets v0.1.8
PyCQA/autoflake v2.3.1
asottile/pyupgrade v3.16.0
PyCQA/isort 5.13.2
psf/black 24.4.2
sbrunner/jsonschema-validator 0.1.0
regex
.pre-commit-config.yaml
poetry 1.8.3
poetry 1.8.3
pyjson5 1.6.6
ci/config.yaml
camptocamp/c2cciutils 1.6.22
docker-compose
docker-compose.yaml
redis 7
dockerfile
Dockerfile
ghcr.io/osgeo/gdal ubuntu-small-3.8.5
github-actions
.github/workflows/audit.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
andstor/file-existence-action v3
asdf-vm/actions v3
andstor/file-existence-action v3
ubuntu 22.04
.github/workflows/backport.yaml
ubuntu 22.04
.github/workflows/clean.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
ubuntu 22.04
.github/workflows/main.yaml
actions/checkout v4
camptocamp/initialise-gopass-summon-action v2
actions/cache v4
actions/upload-artifact v4
actions/upload-artifact v4
ubuntu 22.04
.github/workflows/pull-request-automation.yaml
actions/github-script v7
actions/github-script v7
actions/github-script v7
ubuntu 22.04
pep621
pyproject.toml
poetry-core >=1.3.0
poetry-plugin-tweak-dependencies-version >=1.1.0
pip_requirements
ci/requirements.txt
c2cciutils ==1.6.22
pre-commit ==3.8.0
poetry-dynamic-versioning ==1.4.0
poetry-plugin-export ==1.8.0
poetry-plugin-tweak-dependencies-version ==1.5.2
poetry-plugin-drop-python-upper-constraint ==0.1.0
requirements.txt
poetry ==1.8.3
poetry-plugin-export ==1.8.0
poetry-plugin-tweak-dependencies-version ==1.5.2
poetry-dynamic-versioning ==1.4.0
poetry-plugin-drop-python-upper-constraint ==0.1.0
poetry
pyproject.toml
azure-storage-blob 12.19.1
azure-identity 1.16.1
boto3 1.34.151
bottle 0.12.25
prometheus_client 0.20.0
Pillow 10.3.0
pyproj 3.6.1
pyramid 2.0.2
requests 2.31.0
redis 5.0.8
prospector 1.10.3
prospector-profile-duplicated 1.5.0
prospector-profile-utils 1.7.2
pytest 8.2.2
pytest-cov 5.0.0
types-boto 2.49.18.20240205
types-redis 4.6.0.20240726
types-requests 2.31.0.20240406
pycairo 1.26.1
Shapely 2.0.5
urllib3 2.2.2
pre-commit
.pre-commit-config.yaml
pre-commit/mirrors-prettier v3.1.0
pre-commit/pre-commit-hooks v4.6.0
sbrunner/hooks 1.0.0
codespell-project/codespell v2.3.0
shellcheck-py/shellcheck-py v0.10.0.1
jumanjihouse/pre-commit-hooks 3.0.0
python-jsonschema/check-jsonschema 0.29.1
sirwart/ripsecrets v0.1.8
PyCQA/autoflake v2.3.1
asottile/pyupgrade v3.17.0
PyCQA/isort 5.13.2
psf/black 24.4.2
sbrunner/jsonschema-validator 0.1.0
regex
.pre-commit-config.yaml
poetry 1.8.3
poetry 1.8.3
pyjson5 1.6.6
ci/config.yaml
camptocamp/c2cciutils 1.6.22
Instead of having a list of int and a scale param, see if the decimal module can be used.
When running tc-viewer
from a version of tilecloud that is installed via pip install tilecloud
the tile server errors with an internal server error:
Error: 500 Internal Server Error
Sorry, the requested URL 'http://localhost:8080/' caused an error:
Template 'index' not found.
The reason is most likely a standard mistake in Python packaging: The packaged wheel is missing the html template, because only *.py
ends up in the wheel. Having a quick glance over the wheels on PyPi it looks like they are missing both html templates and bundled tiles.
We should use te possibility to set another host in the S3Connection
class
See: https://github.com/sbrunner/tilecloud/blob/e50329e80f3fecfbb4bee1d81cf633f50f72429b/tilecloud/lib/s3.py#L205
And for example: https://github.com/sbrunner/tilecloud/blob/e50329e80f3fecfbb4bee1d81cf633f50f72429b/tilecloud/store/s3.py#L15 (to do also in tilecloud_chain)
We should use Boto
(http://boto3.readthedocs.io/en/latest/) To sign the requests. (The signature seems to be in version 2, that works for S3 (for now), but not for exoscale for instance)
Should generate thumbnails from existing TileStore, e.g. pack 8x8 tiles into a single tile.
This commit a254cc4
is not compatible with this commit:
kennethreitz/requests@92355ad
Working code:
self.session = requests.session()
if headers is not None:
self.session.headers.update(headers)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.