Skip to main content

Bindings between Numpy and Eigen using Boost.Python

Project description

EigenPy — Versatile and efficient Python bindings between Numpy and Eigen

License Build Status Conda Downloads Conda Version PyPI version Code style: black Linter: ruff

EigenPy is an open-source framework that allows the binding of the famous Eigen C++ library in Python via Boost.Python.

EigenPy provides:

  • full memory sharing between Numpy and Eigen, avoiding memory allocation
  • full support Eigen::Ref avoiding memory allocation
  • full support of the Eigen::Tensor module
  • exposition of the Geometry module of Eigen for easy code prototyping
  • standard matrix decomposion routines of Eigen such as the Cholesky decomposition, SVD decomposition, QR decomposition, etc.
  • full support of SWIG objects
  • full support of runtime declaration of Numpy scalar types
  • extended API to expose std::vector types
  • full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)

Setup

The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X, and Windows environments.

The Conda approach

You simply need this simple line:

conda install eigenpy -c conda-forge

Ubuntu

You can easily install EigenPy from binaries.

Add robotpkg apt repository

  1. Add robotpkg as source repository to apt:
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
  1. Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
  1. You need to run at least one apt update to fetch the package descriptions:
sudo apt-get update

Install EigenPy

  1. The installation of EigenPy and its dependencies is made through the line:
sudo apt install robotpkg-py35-eigenpy

where 35 should be replaced by the Python 3, you want to work this (e.g., robotpkg-py36-eigenpy to work with Python 3.6).

Mac OS X

The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the software repository.

brew tap gepetto/homebrew-gepetto

and then install EigenPy for Python 3.x with:

brew install eigenpy

Credits

The following people have been involved in the development of EigenPy:

If you have taken part in the development of EigenPy, feel free to add your name and contribution here.

Acknowledgments

The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.

Project details


Download files

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

Source Distribution

eigenpy-3.4.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

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

eigenpy-3.4.0-0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

eigenpy-3.4.0-0-pp39-pypy39_pp73-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

eigenpy-3.4.0-0-pp38-pypy38_pp73-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

eigenpy-3.4.0-0-cp312-cp312-musllinux_1_1_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

eigenpy-3.4.0-0-cp312-cp312-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

eigenpy-3.4.0-0-cp312-cp312-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

eigenpy-3.4.0-0-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

eigenpy-3.4.0-0-cp312-cp312-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

eigenpy-3.4.0-0-cp311-cp311-musllinux_1_1_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

eigenpy-3.4.0-0-cp311-cp311-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

eigenpy-3.4.0-0-cp311-cp311-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

eigenpy-3.4.0-0-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

eigenpy-3.4.0-0-cp311-cp311-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

eigenpy-3.4.0-0-cp310-cp310-musllinux_1_1_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

eigenpy-3.4.0-0-cp310-cp310-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

eigenpy-3.4.0-0-cp310-cp310-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

eigenpy-3.4.0-0-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

eigenpy-3.4.0-0-cp310-cp310-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

eigenpy-3.4.0-0-cp39-cp39-musllinux_1_1_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

eigenpy-3.4.0-0-cp39-cp39-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

eigenpy-3.4.0-0-cp39-cp39-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

eigenpy-3.4.0-0-cp39-cp39-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

eigenpy-3.4.0-0-cp39-cp39-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

eigenpy-3.4.0-0-cp38-cp38-musllinux_1_1_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

eigenpy-3.4.0-0-cp38-cp38-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

eigenpy-3.4.0-0-cp38-cp38-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

eigenpy-3.4.0-0-cp38-cp38-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file eigenpy-3.4.0.tar.gz.

File metadata

  • Download URL: eigenpy-3.4.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for eigenpy-3.4.0.tar.gz
Algorithm Hash digest
SHA256 6c89205342299b960c7091a17195b6f768772514015a2b0df7dd6bead574c70b
MD5 11d52daf3342eb5c23ec000ede696551
BLAKE2b-256 5391a1a34e830a1ec1dedaf5974120cfa9950f066f7e2f6b1335422436d0c260

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dcd9e176d5da80b7ed010ab5f4b3a215257f542df2ca6dfba0886aa859f640a4
MD5 7b4ba859c9170c15a7ca0c5bb24ea314
BLAKE2b-256 f960cc54c2d95ae16da572da6adabe8c8bd7bd47a96bc04714386485aff88431

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb929d56f8b655d69371d479968d6da6a9defbe46d0f1e6424b0a464368d8485
MD5 5059ec0c52d440f6ffd64960bfe33e68
BLAKE2b-256 d7bfdd2fa629b14731ae5816c78c0bfa3b72e71d760b528c952a579910954c51

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6aefa5a353fd2b483b647a875d27414ae38a19cae8ac51ffcafe2a326349c7e
MD5 a334383067f95a325f0855ffaf670251
BLAKE2b-256 3933a0cecfe29bb3e0e3205418f7c28d0c2da40fd8bd0f582b158b002fb17604

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9990bed8ce0ff2458db1e9aeda572cd4d5fa1416d8157448236b127fe88efcb6
MD5 deb3a21e59227a6bce0f70e5847f9b0e
BLAKE2b-256 d4a6bb527ffade6afd3b6aef77cad5f4c1648dace0434cbb742bf4ad9ae04a16

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a91d1cc818b7e3dbf1958d499f1744a4843931710c725e6fdf7ed8ed2bc5ee7b
MD5 76036f9c4c2d13397a1895ca3fa80077
BLAKE2b-256 0fe36eaee66027b879e02b93169fe285d96a957aa24598461106d3d0336ca0c2

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b45132ee3ac427a37cf075d121c7b0d810f3bd0dceb91c27223452b09bd5e78e
MD5 426fba13f8c1ff5d2cd270f0de9c3733
BLAKE2b-256 7802363bf31d23b90951c31ad9347d04e1da9baffbc88e66b48c7d779de89bf7

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b9d9feda772cd3f3b3a22343d51a1666e8c3e147810cf4f078744739238ec02
MD5 a78c9e9cd5bf8b202414bcd4bbed75ed
BLAKE2b-256 a43421cc35987f2052b20ba0df8645644f32bd4195351aa582bfcc43260f1f5f

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 05181281371998e6c420eaa1888bfca840de9301da6d3499594c13c1586cfaca
MD5 41aaf3ff147fdb5a40758ddd357430b4
BLAKE2b-256 79a8bc2d3bf57ee12e6a00304ea84d66677e0a8705fa49fc16031a640a238d27

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 04bd04abeaad3ff281f8c4613dece07ff8cbb2596e5286a92c5ae6fec9007fb7
MD5 b99d5f58cb14af26437bc29a98d29421
BLAKE2b-256 aeddf1738340688fc321942a94b185ae01fce92af82ac67187ae0c68afe79865

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ba0b886c0d9b4d8e8297197c752beb8bd8aa7bd96059f943e44f69a48b1b000
MD5 af5511111fa3257b09129c606b060f47
BLAKE2b-256 727e4fa8e0322788d434638662b6a0315eefc2b10c5ccada8fbb7907bffe9ff7

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb97b5cb225d45e81381b0d5227e3e427df0a4de564fb1271f5f64dab6817579
MD5 2e5d039324aa928cf0e2e4cee5009aac
BLAKE2b-256 fe577fc5af455aed46098a682addcd391767ec50767c83c746c83d67496ed89d

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e8ac908ca23cf46910d6159044edff94d4fb672055b1e368a54c2f2ef6a565c
MD5 0118b63e407323401fc4fceecd632b0e
BLAKE2b-256 40f2b3a249ede5274e9b9da3b921b895bf2e716fee051ffc68332a67a7d77558

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 99e7bab4409d37c47e0825bebeff657921d6759ee22cd7d9644bade051830eaf
MD5 e5b677fee3a301d3b658b9e45fbbe152
BLAKE2b-256 a53d980e94b328db28ef2c4b9b9bf9c45f2c1e82e910bcb61c7e38fa70fcf477

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 df7668d30bddc0bc1bcf688bba61325ead577291070a382868416fd8d97035c7
MD5 d8a6bd92123b3a409d39fbaaf1f0b9b7
BLAKE2b-256 51317db72f5b753a3389c08ceb432eab588371625a77c48d43fa3c989f76bc53

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e8bdde7b37be8f3ea75ff7bd111758a13448da64751ae99ebe553944d4693b0
MD5 f01757bafb3f4c39bb29d529be5f7a6f
BLAKE2b-256 f00fbb12eba0c3812a40784c6d77c9193b876631962033ef4490d0a7160005cc

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8d40d2ec3f97d919a9ab383c6691d6a0b358718def79ae820388b1873944a8b1
MD5 4c66f979c5a081058fc9d7d49d499235
BLAKE2b-256 3ca4435d04b28f79c0d1cbb9d264a1617a7589eabf4ce3e1e6a49d83ebef5360

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a955e573af7eb3b54aafe16d1f7292baf2ad911a53b7d2dd1e172bcea104edab
MD5 e04edb7cddc2f3157f2873d554032373
BLAKE2b-256 71ed71c547c7dae720d9f5e33b05e1407cdd3fa7b6de61c17da22210fbb730a6

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9a93157a87621240c2c622bbd5f2c5a5dfdba0390ad18981867e120e9180d391
MD5 f0d10c41c8d595c27e4b98b2449fe15d
BLAKE2b-256 6dc5e3464527c304e1b415ecc828fadcc2b648e6a0e211539234bad26daefd6a

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 16151f8d5d1327eeeda002897fdfc7498fa46165e3efb9caa3a763fb8fb15b66
MD5 6cb1208400a116cd83823e907eb24d5f
BLAKE2b-256 600a5a5be7ea30b8155f48542f24d61fdd52a5c1735e648c373fef9bced01c51

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 112f7dbde96f212b733de325b093d42dbad1c68e00424c5f5258c6af6727bebb
MD5 2e928579e27aa9aabc74e263f55a5dfc
BLAKE2b-256 b749a82911b0875af97a53da7b610c616fafb51617ed8f236d587b34ba9350e0

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c9a9d547b0234b119004eb22e9e5df577988ff880bc00b104876ac164e2a9568
MD5 a4cf895ed44c80a1499a687f8a1b2c13
BLAKE2b-256 b6750d92849002c9194644bff6a827621586465ddfda80f8d1da2a40b624549c

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99e8aaa4524005fda7651d04c2df898893ce4972928e099e442751cda3d3b050
MD5 810ed1754fce0edb96fe8b5ac13bc492
BLAKE2b-256 a1b17e24b0f02a6b3cd378b53642088193804a0790f5bf73a08c80c07587b74f

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f83b058b5a2f3c509e1de73e788baf3153252d2f324fe6cc573d0f9852e4abcf
MD5 ae90b7859dbbdafd08508f5361fefdfe
BLAKE2b-256 a34c27010146d347a2885f201fbf38d3263f4511b477f4ddd6a514cc08192506

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 535ecf2481d8b1d624e6a494b44f026971ee5704a258c6a8e3090557f4b1885e
MD5 9e419f433568cd47c89b1942249bba12
BLAKE2b-256 717471f32998b25d45b37af25dc1aa5383a132daf6af8bb8dfe148dbadb12b76

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2132f48f2107725c4f09e02b8ecaec5bb6160569969f06f4983952e1525d6b5a
MD5 0a1ffe46fe937a23f4a5988d39443d8e
BLAKE2b-256 09bad13654970bb27feac16dc2906df7b35d6f5e7a6cd589207f0ab703f2899d

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b62be6020e0e2e5cc64391f2bba171466e3e17c601a44d6d6cd03b309d3390a7
MD5 ed7add8931251a82dc9602167b9feea4
BLAKE2b-256 1e0b9e179bddc029cf8d7719868cfd322595fb280cd468edb23ff3386a396014

See more details on using hashes here.

File details

Details for the file eigenpy-3.4.0-0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for eigenpy-3.4.0-0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 23c45097e5698bf9cf8a74ee4ccc8b7ef325f1bcf99e2a4616b4018c00ac76c2
MD5 a170125efa9f3d5b4ebbf5f269935f80
BLAKE2b-256 64a4bde91b62a004196a56f71f4e60f7dc44a49c63ef07b49edc7d9a45d66924

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page