Skip to main content

ConnectorX status discussions Downloads

Load data from to , the fastest way.

ConnectorX enables you to load data from databases into Python in the fastest and most memory efficient way.

What you need is one line of code:

import connectorx as cx

cx.read_sql("postgresql://username:password@server:port/database", "SELECT * FROM lineitem")

Optionally, you can accelerate the data loading using parallelism by specifying a partition column.

import connectorx as cx

cx.read_sql("postgresql://username:password@server:port/database", "SELECT * FROM lineitem", partition_on="l_orderkey", partition_num=10)

The function will partition the query by evenly splitting the specified column to the amount of partitions. ConnectorX will assign one thread for each partition to load and write data in parallel. Currently, we support partitioning on numerical columns (cannot contain NULL) for SPJA queries.

Experimental: We are now providing federated query support, you can write a single query to join tables from two or more databases!

import connectorx as cx
db1 = "postgresql://username1:password1@server1:port1/database1"
db2 = "postgresql://username2:password2@server2:port2/database2"
cx.read_sql({"db1": db1, "db2": db2}, "SELECT * FROM db1.nation n, db2.region r where n.n_regionkey = r.r_regionkey")

By default, we pushdown all joins from the same data source. More details for setup and configuration can be found here.

Check out more detailed usage and examples here. A general introduction of the project can be found in this blog post.

Installation

pip install connectorx

For AArch64 or ARM64 Linux users, connectorx==0.4.3 & above is only available for distributions using glibc 2.35 and above. Specifically, the re-release for this architecture was tested on Ubuntu 22.04. For older distributions, the latest version available is connectorx==0.2.3 due to dependency limitations.

Check out here to see how to build python wheel from source.

Performance

We compared different solutions in Python that provides the read_sql function, by loading a 10x TPC-H lineitem table (8.6GB) from Postgres into a DataFrame, with 4 cores parallelism.

Time chart, lower is better.

time chart

Memory consumption chart, lower is better.

memory chart

In conclusion, ConnectorX uses up to 3x less memory and 21x less time (3x less memory and 13x less time compared with Pandas.). More on here.

How does ConnectorX achieve a lightning speed while keeping the memory footprint low?

We observe that existing solutions more or less do data copy multiple times when downloading the data. Additionally, implementing a data intensive application in Python brings additional cost.

ConnectorX is written in Rust and follows "zero-copy" principle. This allows it to make full use of the CPU by becoming cache and branch predictor friendly. Moreover, the architecture of ConnectorX ensures the data will be copied exactly once, directly from the source to the destination.

How does ConnectorX download the data?

Upon receiving the query, e.g. SELECT * FROM lineitem, ConnectorX will first get the schema of the result set. Depending on the data source, this process may envolve issuing a LIMIT 1 query SELECT * FROM lineitem LIMIT 1.

Then, if partition_on is specified, ConnectorX will issue SELECT MIN($partition_on), MAX($partition_on) FROM (SELECT * FROM lineitem) to know the range of the partition column. After that, the original query is split into partitions based on the min/max information, e.g. SELECT * FROM (SELECT * FROM lineitem) WHERE $partition_on > 0 AND $partition_on < 10000. ConnectorX will then run a count query to get the partition size (e.g. SELECT COUNT(*) FROM (SELECT * FROM lineitem) WHERE $partition_on > 0 AND $partition_on < 10000). If the partition is not specified, the count query will be SELECT COUNT(*) FROM (SELECT * FROM lineitem).

Finally, ConnectorX will use the schema info as well as the count info to allocate memory and download data by executing the queries normally.

Once the downloading begins, there will be one thread for each partition so that the data are downloaded in parallel at the partition level. The thread will issue the query of the corresponding partition to the database and then write the returned data to the destination row-wise or column-wise (depends on the database) in a streaming fashion.

Supported Sources & Destinations

Example connection string, supported protocols and data types for each data source can be found here.

For more planned data sources, please check out our discussion.

Sources

  • Postgres
  • Mysql
  • Mariadb (through mysql protocol)
  • Sqlite
  • Redshift (through postgres protocol)
  • Clickhouse (through mysql protocol)
  • SQL Server
  • Azure SQL Database (through mssql protocol)
  • Oracle
  • Big Query
  • Trino
  • ODBC (WIP)
  • ...

Destinations

  • Pandas
  • PyArrow
  • Modin (through Pandas)
  • Dask (through Pandas)
  • Polars (through PyArrow)

Documentation

Doc: https://sfu-db.github.io/connector-x/intro.html Rust docs: stable nightly

Next Plan

Checkout our discussion to participate in deciding our next plan!

Historical Benchmark Results

https://sfu-db.github.io/connector-x/dev/bench/

Developer's Guide

Please see Developer's Guide for information about developing ConnectorX.

Supports

You are always welcomed to:

  1. Ask questions & propose new ideas in our github discussion.
  2. Ask questions in stackoverflow. Make sure to have #connectorx attached.

Organizations and Projects using ConnectorX

To add your project/organization here, reply our post here

Citing ConnectorX

If you use ConnectorX, please consider citing the following paper:

Xiaoying Wang, Weiyuan Wu, Jinze Wu, Yizhou Chen, Nick Zrymiak, Changbo Qu, Lampros Flokas, George Chow, Jiannan Wang, Tianzheng Wang, Eugene Wu, Qingqing Zhou. ConnectorX: Accelerating Data Loading From Databases to Dataframes. VLDB 2022.

BibTeX entry:

@article{connectorx2022,
  author    = {Xiaoying Wang and Weiyuan Wu and Jinze Wu and Yizhou Chen and Nick Zrymiak and Changbo Qu and Lampros Flokas and George Chow and Jiannan Wang and Tianzheng Wang and Eugene Wu and Qingqing Zhou},
  title     = {ConnectorX: Accelerating Data Loading From Databases to Dataframes},
  journal   = {Proc. {VLDB} Endow.},
  volume    = {15},
  number    = {11},
  pages     = {2994--3003},
  year      = {2022},
  url       = {https://www.vldb.org/pvldb/vol15/p2994-wang.pdf},
}

Contributors

wangxiaoying
Xiaoying Wang
dovahcrow
Weiyuan Wu
Wukkkinz-0725
Null
EricFecteau
EricFecteau
Yizhou150
Yizhou
pangjunrong
Pang Jun Rong (Jayden)
zen-xu
ZhengYu, Xu
domnikl
Dominik Liebler
wseaton
Will Eaton
AnatolyBuga
Anatoly Bugakov
Jordan-M-Young
Jordan M. Young
jsjasonseba
Jason
auyer
Rafael Passos
jinzew
Null
gruuya
Marko Grujic
alswang18
Alec Wang
lBilali
Lulzim Bilali
ritchie46
Ritchie Vink
houqp
QP Hou
wKollendorf
Null
glennpierce
Glenn Pierce
jorgecarleitao
Jorge Leitao
chitralverma
Chitral Verma
quambene
Null
CBQu
CbQu
tschm
Thomas Schmelzer
maxb2
Matthew Anderson
JakkuSakura
Jakku Sakura
therealhieu
Hieu Minh Nguyen
FerriLuli
FerriLuli
quixoten
Devin Christensen
DeflateAwning
DeflateAwning
alexander-beedie
Alexander Beedie
zzzdong
Null
zemelLeong
zemel leong
venkashank
Null
tvandelooij
tvandelooij
surister
Ivan
phanindra-ramesh
Null
messense
Messense
kotval
Kotval
albcunha
Null
rursprung
Ralph Ursprung
MatsMoll
Mats Eikeland Mollestad
marianoguerra
Mariano Guerra
kevinheavey
Kevin Heavey
kayhoogland
Kay Hoogland
holicc
Joe
deepsourcebot
DeepSource Bot
bealdav
David Beal
AndrewJackson2020
Andrew Jackson
Cabbagec
Brandon
Amar1729
Amar Paul
aljazerzen
Aljaž Mur Eržen
aimtsou
Aimilios Tsouvelekakis

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

connectorx-0.4.4-cp313-none-win_amd64.whl (34.6 MB view details)

Uploaded CPython 3.13Windows x86-64

connectorx-0.4.4-cp313-cp313-manylinux_2_35_aarch64.whl (40.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ ARM64

connectorx-0.4.4-cp313-cp313-manylinux_2_28_x86_64.whl (43.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

connectorx-0.4.4-cp313-cp313-macosx_11_0_arm64.whl (36.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

connectorx-0.4.4-cp313-cp313-macosx_10_7_x86_64.whl (38.0 MB view details)

Uploaded CPython 3.13macOS 10.7+ x86-64

connectorx-0.4.4-cp312-none-win_amd64.whl (34.6 MB view details)

Uploaded CPython 3.12Windows x86-64

connectorx-0.4.4-cp312-cp312-manylinux_2_35_aarch64.whl (40.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ ARM64

connectorx-0.4.4-cp312-cp312-manylinux_2_28_x86_64.whl (43.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

connectorx-0.4.4-cp312-cp312-macosx_11_0_arm64.whl (36.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

connectorx-0.4.4-cp312-cp312-macosx_10_7_x86_64.whl (38.0 MB view details)

Uploaded CPython 3.12macOS 10.7+ x86-64

connectorx-0.4.4-cp311-none-win_amd64.whl (34.6 MB view details)

Uploaded CPython 3.11Windows x86-64

connectorx-0.4.4-cp311-cp311-manylinux_2_35_aarch64.whl (40.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ ARM64

connectorx-0.4.4-cp311-cp311-manylinux_2_28_x86_64.whl (43.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

connectorx-0.4.4-cp311-cp311-macosx_11_0_arm64.whl (36.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

connectorx-0.4.4-cp311-cp311-macosx_10_7_x86_64.whl (38.0 MB view details)

Uploaded CPython 3.11macOS 10.7+ x86-64

connectorx-0.4.4-cp310-none-win_amd64.whl (34.6 MB view details)

Uploaded CPython 3.10Windows x86-64

connectorx-0.4.4-cp310-cp310-manylinux_2_35_aarch64.whl (40.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ ARM64

connectorx-0.4.4-cp310-cp310-manylinux_2_28_x86_64.whl (43.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

connectorx-0.4.4-cp310-cp310-macosx_11_0_arm64.whl (36.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

connectorx-0.4.4-cp310-cp310-macosx_10_7_x86_64.whl (38.0 MB view details)

Uploaded CPython 3.10macOS 10.7+ x86-64

File details

Details for the file connectorx-0.4.4-cp313-none-win_amd64.whl.

File metadata

  • Download URL: connectorx-0.4.4-cp313-none-win_amd64.whl
  • Upload date:
  • Size: 34.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for connectorx-0.4.4-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 ef6ce2e95d04163862c1a2e5a673ae6371d74a3ca66a4e3fec4a7c281944b102
MD5 2067f60e9e0d2d260923531104ccf7b1
BLAKE2b-256 9e19f4751510ad196e2894205d68d029c1699e67b4026ed655aee5487528cb5a

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp313-cp313-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp313-cp313-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 f1b4fe628623db5dd99713e9195c8cd9cc63a6d2aff206a47ff87d719806836e
MD5 82c7b9182f5829b07a5ce473f4597386
BLAKE2b-256 c30f36ae620a0ab457eb90d7a4ffd2cf5a7b42bc234f3bd47b167602603bed23

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66a07c5215aed34a101137e7cc8c4509939974cad60faebb19972d73c1960d82
MD5 c185dffd2a286ce2cef867f0e52aec49
BLAKE2b-256 52e40e066245624967ba403b83887d362e730a00981cdfe38a89b49fc305efd2

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf4c94bc74db19262b6e8fa72f4df92c5ad7249212863400be66300564f89f09
MD5 cba6f61782b996dbd60379bafb1df245
BLAKE2b-256 bfc9db8c9d153eb0a8472997f2e746cd9b1e0da39b6eaac734f40de098333e0a

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp313-cp313-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp313-cp313-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 3bf1498e662a5461ba27f8a90d04ff67fddc9bf9d8d9d9687db037a89202fcf7
MD5 0928f7220f492f9e10276ed9a79b578a
BLAKE2b-256 24d5406fe74dba7e608d2edde3a345c407b1362c59f7044f077b3195e37c2658

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp312-none-win_amd64.whl.

File metadata

  • Download URL: connectorx-0.4.4-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 34.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for connectorx-0.4.4-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 dcf4fb9d1e94ebe0bb4b72a18aeba119895d2fa66b4fe69a8ece97942748c3b0
MD5 fd2e98d7c2dc10d33c714ce5a4ea17dc
BLAKE2b-256 08d02af09c4077e0d357f33384e4d6fc2c34a3d33e473ae7f939a6c58769774d

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp312-cp312-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp312-cp312-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 c30ccbaf5b2549c47fda96092622568a47b73e9db31dd3d385a472f2b6d07629
MD5 dbf1d999a59d53d9e0c2151d19badbbd
BLAKE2b-256 0a851dbbada0f38d9a48be4be7b52c27aaf49673ca4818c1519a18647b170af9

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f458f521dd143d37ddc2d6614f8014191b736b13cb5824d3aef8a0f487ea8fa
MD5 3fa5a7fde1b0ad3d6ec4b4fd5302ae98
BLAKE2b-256 462583392512c7dafd6b940a18ce0349784c9df0a339e4277be77e1babcdf33a

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 848fd58e696e7291280e1b58e15a6a036f07b53cf8dd014d04732255d7d6985e
MD5 5118aeefa93b2c7f282034a31303a5f5
BLAKE2b-256 ee9e368cf802ec46852fbf59e02fb842edd50fb19f7e52bfc4462e1e00b062f5

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp312-cp312-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp312-cp312-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 11aab42c72bd4e8913db815b9c93f5e2ee27646ad3243bae0d0f3866759e75d4
MD5 99f010754f96e14a0fe4a1b13dd3537e
BLAKE2b-256 5276939ccafc8b5822637974764ae261f39519e1d3118acbd6f9be9ebb8cdaf0

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp311-none-win_amd64.whl.

File metadata

  • Download URL: connectorx-0.4.4-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 34.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for connectorx-0.4.4-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 ca59b6d594e652700840564a05b6f0cb626c3dbaba928bc84e1c2ebafd46c077
MD5 bf3a1ab7752e7c8eaddbf3e76625da08
BLAKE2b-256 fbbb56a5e5eed72f5a5d929036505f36f0ed4dc9af1faf63cf9165a09e5f29d8

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp311-cp311-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp311-cp311-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 c7265ab1f9e12f767e9b5523f497147ff82f7d079ace692069d08b98d06e3843
MD5 37a1ff074a276f431e56d7a775a6833f
BLAKE2b-256 26b6cb39941b97e2a26e54316f4169d5d0b3aa5dd1077a85bc855d366c68d7d8

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7321f83f1aa180922c142df8106e4cf6f44123bc9d7be900b126d9e2dc3566cc
MD5 2f0afb7ce6a64feb6ed854ae2acfbf98
BLAKE2b-256 55a543447d5a1e8c4d3233a30132b874d7dda05b9a21a87ea0e625b6b268268e

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40ad3e3130474e19c885adb26d57c056e86179fcc567210e9c1be7593c1355ab
MD5 01ebbb7cfc2991d0699bc23bfa330884
BLAKE2b-256 6bf3da48b9a86ab173bcacbe62fb8dd2f744fb57c8dc3a129a9c478a9a802383

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp311-cp311-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 7a2cb89637a3ff2f361c6ecc47f8f8280f86bc079fe7b4e60948e37e8acb6384
MD5 b4091cf638fd07166879d4787f727153
BLAKE2b-256 96be648fdee47cacbc5d9073429adbc41395c10a9070d74898fd1638e6fe379f

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp310-none-win_amd64.whl.

File metadata

  • Download URL: connectorx-0.4.4-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 34.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for connectorx-0.4.4-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 0aea4f0afdb243e9b7ca48d10f54bf7479fdb71b53db0593123c2ee91b1a165e
MD5 4159f99ae9cd9d6eac7201ae2b952ecb
BLAKE2b-256 3f254f4527aa600b3fa8fc038eaef146a56bce6a03e87643d8d7606910a38401

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp310-cp310-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp310-cp310-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 514663ee140f3c935476f4d4791d4827b673a5f3f83da95f95130031cfa55fc1
MD5 e8475638b31b5d61c7c4ec54007e6e99
BLAKE2b-256 5e6f8ed9a10a53ae1f9550d1ea2eecc539552667ee947fb9f84365893dbd37ac

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 898b7d721324343802da9a754cef9230ff58718d81becdd241aba2603d93bda3
MD5 aae3e5cd110d8d37fc4a7e6fbc2dd282
BLAKE2b-256 c8f4aa3c39f6982fabd9e4127ed9542947a96560c93784d1d11b012651d94d59

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bcaeb9ccede6bb63e6cc85b8004aef08a2ec4cd128df18390da46bdb2daa378b
MD5 f8c21ec74700ad2fabc6015edc581b0b
BLAKE2b-256 b0d03b63b843f9792d9780f76d31be1a48fba90670ed463d3b6c40f228efbea3

See more details on using hashes here.

File details

Details for the file connectorx-0.4.4-cp310-cp310-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for connectorx-0.4.4-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 58a3f9e05a42066dd8e2f1da6c9bbd18662817eba7968eb88031f4b3365831e0
MD5 e03fa8a55f6ee300f7dfb2e0c2384f08
BLAKE2b-256 64732065b337fb8d7efab9e77c8ada0d6a97be01f390fddf6fe4e012935fe45e

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.5

25 files

This release

0.4.4 This release

20 files

0.4.3

20 files

0.4.2

16 files

0.4.1

16 files

0.4.0

16 files

0.3.3

16 files

0.3.2

16 files

0.3.1

16 files

0.3.0

16 files

0.2.5

16 files

0.2.4

12 files

0.2.3

13 files

0.2.2

12 files

0.2.1

9 files

0.2.0

9 files

0.1.1

9 files

0.1.0

9 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page