Skip to main content

Sparse vector and matrix classes with fast operations for Disco simulations

Project description

🧮 sparse-array

Sparse vector and matrix classes with fast C++/NumPy-backed operations
for use in Disco simulation programs and other large-scale discrete event models.

PyPI License: MIT Build Tests


Overview

disco-sparse-array provides compact sparse vector and sparse matrix types that operate efficiently on large, structured numerical data.
The package is optimized for repeated arithmetic and transformation operations that occur during Monte Carlo and discrete-event simulations, as used in the Disco simulation framework.

It combines:

  • Lightweight Python classes for usability.
  • C++/pybind11 kernels for compute-intensive operations.
  • NumPy interoperability for zero-copy exchange of data.

✨ Features

  • Sparse Vector and Matrix classes with explicit indices and values.
  • Fast arithmetic:
    • a + b, a @ m, and in-place variants.
  • Change detection and subset validation (diff, changes).
  • Conversion utilities:
    • Sparse → dense arrays (to_dense).
    • Dense → sparse (via index filtering).
  • Consistent API and predictable semantics across all operations.
  • MIT-licensed, pure Python/C++ — no external runtime dependencies beyond NumPy.

🚀 Installation

pip install disco-sparse-array

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

disco_sparse_array-0.1.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distributions

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

disco_sparse_array-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

disco_sparse_array-0.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (103.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

disco_sparse_array-0.1.0-cp314-cp314t-macosx_11_0_arm64.whl (83.8 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

disco_sparse_array-0.1.0-cp314-cp314t-macosx_10_13_x86_64.whl (89.2 kB view details)

Uploaded CPython 3.14tmacOS 10.13+ x86-64

disco_sparse_array-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

disco_sparse_array-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (101.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

disco_sparse_array-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (80.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

disco_sparse_array-0.1.0-cp314-cp314-macosx_10_13_x86_64.whl (86.5 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

disco_sparse_array-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

disco_sparse_array-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

disco_sparse_array-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (80.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_sparse_array-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl (86.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

disco_sparse_array-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

disco_sparse_array-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (100.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

disco_sparse_array-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (80.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_sparse_array-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl (86.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

disco_sparse_array-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

disco_sparse_array-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (98.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

disco_sparse_array-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (80.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_sparse_array-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl (85.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file disco_sparse_array-0.1.0.tar.gz.

File metadata

  • Download URL: disco_sparse_array-0.1.0.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for disco_sparse_array-0.1.0.tar.gz
Algorithm Hash digest
SHA256 159778e5cee854521c1abb95711dd770aaa3a91fd142ecaf1806f2896a4e7944
MD5 d6439cdb900d93205c456d440aaaa18a
BLAKE2b-256 2d6ead50ed322ef93e6e075458240c99323a0cf2e0c680a6f8c82bb04067ba55

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0.tar.gz:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 111b83794d723ffb6450fc8d4243c6b3c3508ba18fdb4393daff11208b1ca513
MD5 843d97fede48006f4c38345fb2c6c7e8
BLAKE2b-256 14bc6685c21108acf75c761cc0ef94b00bdcc3e5d7509ac254a6a99b8fe32c5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8bf79d1d503253045269392419be96e7e5a003dc0d575414cd67070dcfbef773
MD5 6ce2b1a518ed8bc5f4f21b0efb109d04
BLAKE2b-256 ae610fe34f17c50553f24b2bdef6b21eb3ad8f18782596c40540298f251373e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f451b10c9693d14df361f8d650061fbbb4d045ee24cfce9c91379eb1801396b1
MD5 93decdad7c489642401815f9f24325c6
BLAKE2b-256 019c865688b4e58c412020507f7effc338024dc754c4023389e992135111dbc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp314-cp314t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp314-cp314t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e96061b8e6ce319e18b13f3cc44bf22b0047c51f8951fadc56c08b2a8c57a95e
MD5 78ae09b701b5c41c08a27a5c4487f4dc
BLAKE2b-256 7b4b0bc1eef9ca9d1f2513f70e2cd49e8591f01bc86c39d6b55d1f810f985d03

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp314-cp314t-macosx_10_13_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6e442d053a54b69904548d5b7687caf6c428450718671d6ab7db252e158908a5
MD5 7c080daacc972bb9a1b083b60f7a7cfa
BLAKE2b-256 4260ece5b45fe51b30835c28605e4d9fdba96cc14c3143fc792876410f6f56d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e686939b1c9701a961b0454ae0522098aa17d6c1639673cc4a5bc3ba6d3b97e6
MD5 abae9fe9727a0a43b30213da17799b19
BLAKE2b-256 bc5687e231796e21170daf0b1fca185400a166a5d17b4c624145108062efee9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96503359bd0f58e42b9230fa353719dcb1821da61dc143c2688acd896327cd8f
MD5 9c0c49f18eef7fdfd330abae348400b1
BLAKE2b-256 c7be709c6d0455b7275b612de2f32e006d196274f626e60d0b117fea58905f96

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 63ea830395bef7fa53d39aaa58bfc13f71da2d236d650748b32ed17371b055ae
MD5 398855ff5dee8c222655fda5e3d86584
BLAKE2b-256 219c167d465f5884db24c93efcdf1202a920f4177a6b79910667f02b616a01cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp314-cp314-macosx_10_13_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3d74236fb4fc9ada82c60e0c1387e51558e76fc97dce95d033be7d879ff8194a
MD5 0ff18ebcfcdda79195b22b4273c4fd7a
BLAKE2b-256 30b73bc72227b56b18f58bd319043d020d779ab10b89f54e9017d3885c6e0511

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 04a779c70ef75a15b0981110aec70065542d4ebc160c56ebf2aafff1dc249d6c
MD5 0e96355ede7073693c96a933855755b3
BLAKE2b-256 ceeb092f6bcef76b37bed3b0d5f3f02d75dc3173841bd78124a18f0b3309c8a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e29126e444590615fa4c2cfa47088a781a02983f0e9b266e4b984e01def12d39
MD5 226bd9be2256477733e50a8c1f0b8e33
BLAKE2b-256 814d5f9bfbb69625281fa19ce1e4322ba4fe7e457e722c674dd7f4eab79113f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 650d2baab0f1a0c1effe4f9397ae30a820c53f25cc2955cd2919221ac74cd487
MD5 11c76fba9b8cc3dbd03e336c5a56807a
BLAKE2b-256 0176477fa228b900c72166705a2eb006f3eda2616879101cb8358bee5f26c613

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 667a1cb097c47e8a88e0313a392ed622a61b1681e5ebb2173230021ef34e49c7
MD5 c9162c20bca47caa6149096bf472b96a
BLAKE2b-256 4f1f7df4f8fbdd1bca1ad25af6e3f3c4841ee1fa90ee12f2300207990e443094

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bb47abe08762b2e4b2c6df69e6c71af704a956eb1962a220da991ed1c6cf0ed9
MD5 b7dec7479a90bc253c407cf84b1a0d89
BLAKE2b-256 68d2a45ad4a6f032ff228a30f6feca275dbc9e45763c893d2cfd491958d88805

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8cde698e9c714acb9a9efcd36e84f263aba7539b25c39179451f92596a4db2e
MD5 24cd93a2f44931adcb6b8bb50bbab071
BLAKE2b-256 edf56e1bf4b1edea537a3d7dc6066cfe45d532ca783d29c6385efd93439fcb79

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0961bc82ef8225e10383e980711f4691a80a45ec2e2970f31aa200b0b811da1b
MD5 e9ddfcbb686fc879f31f7ee9cf601d10
BLAKE2b-256 f5d747577a616afd60cbc3bfbfcf3b3867d9866c647e73b5ec66f0d5527cb345

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 306c03dc2bc2986939e7da2bc1ecd92f9c3413d439c823503b625cf0614735e5
MD5 775f1bb5e995c73d04eb5ffd9376d78d
BLAKE2b-256 4b1e5f0523888582e940457f1bc1a58e3a92d1b65adfd6c8bb0444328db9a3d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0852881943fc803db730755b482ae72a7d744551245a67ea43a73808508ee719
MD5 ddb204d77ba9842bfd6878125fcb635e
BLAKE2b-256 2812e5a3114acb62d5262e05914cd819135c6a53c063e3131909fa3e6c8011de

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0983b259914d3e292cc2f87e12d4d64811205ec049eafd2fd77a400b555ab73
MD5 9e4c78e407dff53cbfbfc96c9fdf14a8
BLAKE2b-256 bdba30639e57ac42bbcab856271efeeee78d4bee88ea66d6bb8be10dc9ae8f97

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_sparse_array-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for disco_sparse_array-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cba9f92f8e18426aaf4b73026f56ca75189da2943753f91f6462e33a1fd75d31
MD5 bd5c31c3da3ef5ea4e76d38bd28f0b8f
BLAKE2b-256 130d7fa733438c25501b82bad525424e36aa69d4d277cc9bd5fd711502744e0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_sparse_array-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-sparse-array

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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