Skip to main content

Convert STEP files to GLB using OpenCASCADE

Project description

cascadio

A Python library which uses OpenCASCADE to convert STEP files to a GLB file which can quickly be loaded by trimesh and other libraries.

The primary effort here is build and packaging using the wonderful work done recently on scikit-build-core and cibuildwheel. The goal is to produce wheels that don't require users to build OpenCASCADE themselves.

This is not intended to be a full binding of OpenCASCADE like OCP or PythonOCC. Rather it is intended to be an easy minimal way to load boundary representation files into a triangulated scene in Python. There are a few options for loading STEP geometry in the open-source ecosystem: GMSH, FreeCAD, etc. However nearly all of them use OpenCASCADE under the hood as it is pretty much the only open-source BREP kernel.

Install

The primary goal of this project is building wheels so vanilla pip can be used:

pip install cascadio

Currently this works on non-MUSL flavors of Linux, Windows x64, and MacOS x64+ARM. You can check PyPi for current platforms.

:warning: :warning: :warning: :warning:

PyPI has a size limit, and each release of this is large! We will not be keeping every release on PyPi (i.e. if we run out of space we delete versions) so be very careful pinning the version!

We'll keep the following versions as "LTS" style releases on PyPi:

pip install cascadio==0.0.13

Motivation

A lot of analysis can be done on triangulated surface meshes that doesn't need the analytical surfaces from a STEP or BREP file.

Contributing

Developed on Linux which should build wheels locally with docker:

# Build wheels using cibuildwheel (builds OCCT inside container)
CIBW_BUILD="cp312-manylinux_x86_64" cibuildwheel --platform linux

For local development without docker:

# install build tools
uv pip install cmake ninja

# build OCCT to occt_cache/
uv run python scripts/build_occt.py

# source the env vars it writes
source occt_cache/env.sh

# install and test
uv pip install -e .
pytest tests/

Patching OCCT

When modifying OpenCASCADE source files:

# 1. Start with clean OCCT (reset any local changes)
git -C upstream/OCCT checkout -- .

# 2. Build OCCT (applies existing patches from patches/)
uv run python scripts/build_occt.py

# 3. Make your changes to OCCT source files
#    Edit files in upstream/OCCT/src/...

# 4. Regenerate the patch file from your changes
uv run python scripts/build_occt.py --build-patch

# 5. Rebuild OCCT with your changes
uv run python scripts/build_occt.py

# 6. Source env and test
source occt_cache/env.sh
uv pip install -e .
pytest tests/

Future Work

Pull requests welcome!

  • Add passable parameters for options included in the RWGLTF writer.
  • use in-memory data for input and output, i.e. stepReader.ReadStream() instead of a file name. Ideally the Python function signature would be:
    • convert_to_glb(data: bytes, file_type: str, **parameters) -> bytes
    • Currently using file names because it's easier.
  • Support IGES
    • Investigate using OpenCASCADE "Advanced Data Exchange" for Parasolid .x_b/.x_t and JT .jt support.

Project details


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.

cascadio-0.0.18rc6-cp314-cp314t-win_amd64.whl (17.1 MB view details)

Uploaded CPython 3.14tWindows x86-64

cascadio-0.0.18rc6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (26.9 MB view details)

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

cascadio-0.0.18rc6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

cascadio-0.0.18rc6-cp314-cp314t-macosx_11_0_x86_64.whl (23.7 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ x86-64

cascadio-0.0.18rc6-cp314-cp314t-macosx_11_0_arm64.whl (21.5 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

cascadio-0.0.18rc6-cp312-abi3-win_amd64.whl (16.5 MB view details)

Uploaded CPython 3.12+Windows x86-64

cascadio-0.0.18rc6-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (26.9 MB view details)

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

cascadio-0.0.18rc6-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.6 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

cascadio-0.0.18rc6-cp312-abi3-macosx_11_0_x86_64.whl (23.7 MB view details)

Uploaded CPython 3.12+macOS 11.0+ x86-64

cascadio-0.0.18rc6-cp312-abi3-macosx_11_0_arm64.whl (21.4 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

cascadio-0.0.18rc6-cp311-cp311-win_amd64.whl (16.5 MB view details)

Uploaded CPython 3.11Windows x86-64

cascadio-0.0.18rc6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (26.9 MB view details)

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

cascadio-0.0.18rc6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

cascadio-0.0.18rc6-cp311-cp311-macosx_11_0_x86_64.whl (23.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

cascadio-0.0.18rc6-cp311-cp311-macosx_11_0_arm64.whl (21.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cascadio-0.0.18rc6-cp310-cp310-win_amd64.whl (16.5 MB view details)

Uploaded CPython 3.10Windows x86-64

cascadio-0.0.18rc6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (26.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cascadio-0.0.18rc6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

cascadio-0.0.18rc6-cp310-cp310-macosx_11_0_x86_64.whl (23.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

cascadio-0.0.18rc6-cp310-cp310-macosx_11_0_arm64.whl (21.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cascadio-0.0.18rc6-cp39-cp39-win_amd64.whl (16.5 MB view details)

Uploaded CPython 3.9Windows x86-64

cascadio-0.0.18rc6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (26.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cascadio-0.0.18rc6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

cascadio-0.0.18rc6-cp39-cp39-macosx_11_0_x86_64.whl (23.7 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

cascadio-0.0.18rc6-cp39-cp39-macosx_11_0_arm64.whl (21.5 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file cascadio-0.0.18rc6-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 f7a148cffc8c2184f8f304ac953d944e62abb4bfa602f67d2035b233b704b0e3
MD5 b5d0c919891061bc082ae651b13e4402
BLAKE2b-256 8274aa99f8c2476c3a7713c7c95b55fc499bd21dc3376b0820e57f0b3ee2ba55

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6afb31501c7032758ceab2af0b7c4d3ecb881dd0088de1dfd8b1e5e153a4038b
MD5 2915e3db73e4e8e19b84e4124d773eb3
BLAKE2b-256 8142044d8d1ff37ab1c85486e7b5b1031ec2f80cb89a7047f836a3703f79c6fa

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ce7c07e2bfe535d2f0744eb128c49b32b826c5299bfcbcbe7d413081f01c8ea
MD5 1e76d06e32932f29727a3d11385fc599
BLAKE2b-256 e4d20515f11330e0e66de44e8bb6ead21621809b57c892374ff9c036c701cc3d

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp314-cp314t-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp314-cp314t-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 948eb1ce23eb00234f94742d1abb6a518e068c3381b8a9d1c33608117f61b50b
MD5 21060287c1eeb9abd5216adfbc2ad48a
BLAKE2b-256 3d670edc33eadc50b545ec6be8f6a9e4d8f7af6b057bd77bd9f4d8bd267ee9cc

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46cc3ca3a1887905cd27eaa0fde43e7846306e61282c0180a3ec2b1d3589c719
MD5 57a711b851e16a27950b16601e17e9c3
BLAKE2b-256 6333902e5ae1dabeb1f6fae385255f91fe36ec6e689730b82c52a6a33ac2a51c

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: cascadio-0.0.18rc6-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 16.5 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.15

File hashes

Hashes for cascadio-0.0.18rc6-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 85124eacfa1c20324b1aa6091468479c1ed29d225f4d5fe1309c90a23679bffd
MD5 e2939f8f4e21d7a184e8338705b56fcf
BLAKE2b-256 3e4ded258366b9438cf6ce0ee3b2feaa0e765375bef2a0429767adb5a0e2e56a

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b26ae4b7672b9115f4275da6704f64e564003d4d4c372625c0f7a37fc189f2b3
MD5 150ecb60515086e650495dcbce598264
BLAKE2b-256 7489fe5f3396c40efcaf77bd63f88424be980a6d301097e75cd8d65c52b91878

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a5d452c44ef450fa7a6be4e55acfc34c55635f7fce5fa2f46ae38e3655fc91e8
MD5 ad9a09fba9b7eb1485fcbd458eb327bc
BLAKE2b-256 f7e2fdddd2ae59036445fc9d818c71736d4f9e9ad45ccdcdf7c57f084b94e246

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp312-abi3-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp312-abi3-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 5b7f725f46de9850a8a33a30e6e8b01164fa73df5dcfb87387c87d5f58204835
MD5 57feb19376d53f9c3d4621700890bc95
BLAKE2b-256 ec42f3306693813e7d9fababe24c05cb007e89de043f5eb3e95fdeedc32608cd

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b65686109243dc37def51bfd300304ed31cc10507fd567413ac630a96051de8e
MD5 13df10329238a1ecf7bfbb9f25ef806d
BLAKE2b-256 4f6e9177c0c972199c495e50cb83d92a75b83ee2347f2bb85d7711844ca8c018

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 36f78623c6f1d07ea7f1a60c77b02f9b09c0391c0894e785020129c9d4678ab1
MD5 3972c366be34b3870e6cb01f8caee830
BLAKE2b-256 d4a2919c1f21850d2c376c14873ba691458f60988cc3759b2314537f23e575e5

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 615da7d7de0f594389765ce9468f5fd9886080dda4e6e1b8b486dadc1429eec1
MD5 da31eaa10ae795ea4537648e2c441863
BLAKE2b-256 316c7b169e67859feb1ce058426885a166579d7d8817d0eea7c8186c64f6d503

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e53ef199824fc6489ae95651556af08898ce8adb6079484190eddae6a4fbb274
MD5 dcb7073665dba2588d6012beb6e814b7
BLAKE2b-256 4fc9aa1f6ed02310ce57b88f0775406ee141484ecd5b5e50c1c26f3290a45abc

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ce03f1f28534957a1e1f6bbec9bc53aeb6a8984010155e3c006c777dd1d76d1b
MD5 06dee88c64734d9f8e2024d035e4c923
BLAKE2b-256 52c1c7be22ff0aab1ca7518d7ae7138e7b9d1c17dfd17bed0dfe641342a905e1

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c89637eff84a0c7885aab35189c9818624af92b8e9582ba1ae21705e1a572cb3
MD5 90b0285bcbb84f9940da89afa53cc219
BLAKE2b-256 652a2661fc4caf64a9175c785d79be3d466923db986a8625ac606258e25dc65b

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0d554ed1e2f2d0c29dcae72b72c31aa2a2d9588316f38abf791f8bca1bb76c70
MD5 4aa94584ef990b3d8fc3f67fcb3de26b
BLAKE2b-256 2f20d901e37f9115b02ab3816556ed3c0c0b75f13ea6168bf57b72a74219dee8

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68630692a1f3b3f3aebaded9f55eea52068e260d55571e400baf0719001a7641
MD5 a92a7280bc50a7191eb7f4dd4e17c1cd
BLAKE2b-256 55b89b3b66f00f8154fc4d039ffc17b6d88f674df5f170cdc1f844fa1675061f

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bcd4dd68665055c5ff65b237e774efa6c5ff3b174c7d3122a7cb7d1426b1e73f
MD5 b7cf9c7d98568022706ae7c2040c57b4
BLAKE2b-256 fb66a304e2f87a1cb1b7baaf0ed0d882686b80395318e8584611457512e2304d

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ed1626b9a11507ae2dc1de826d368dc3b94172767df2fd87f6ebe1ea412f8e64
MD5 ea23bbd7c9503c4f0cded2431a9ccaf9
BLAKE2b-256 bd11640062315e28898bd51f1188ec40cc9fc7b3b7d8e5456d9bc0ae71c85046

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d8869dd34a4d96ac92191b6d50ef61649b76cd16684366ee1dc0830e1ef261c
MD5 0e0305e9215686c010a550670af4de77
BLAKE2b-256 3ba393e323e3c093154089cc3725fa8d244b5fdd9e921ca1386ee70123f6ac95

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: cascadio-0.0.18rc6-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 16.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.15

File hashes

Hashes for cascadio-0.0.18rc6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 13cc297491e2093ee26277ad8e92611b22c902872b5b2affda16c02650890429
MD5 28ea61530fea7a6279c483be196e5992
BLAKE2b-256 34402846e2cd7e80d414e4be712e3bdbc3dc1fa4f8872262b2fbf89e7fd2460b

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 da604e9ba224d14f086e10e5ca5c692031f9507fdfb35095d7db965130fc786d
MD5 ad70d6f47292320eb7ac5bcb06620a55
BLAKE2b-256 3c23affc76322364d7a826ed2ebb52f7baead54d131956598eb09956be7ed208

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b000dcf7a6f2241b6ef2504f9a4b68cebbcd017d6b7992bb428913b0c0e584f0
MD5 768cdd31e06f72b2be978e18b9d3aafe
BLAKE2b-256 ab7a9d1ad7d822bacaa5f1a1a7b58aa84ff50e0d3343141a50c56282f1835e34

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4e1af5c3ee8b9a725d74bbfc28c8fd587a337f5fd2ef4f212803af67e147d797
MD5 41447750d0b10898e6113c1e7763c048
BLAKE2b-256 17f8c93fda15ec5a84a22bd7d43918bed62d552ad91b8b6e396609c1ee0dcd7d

See more details on using hashes here.

File details

Details for the file cascadio-0.0.18rc6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cascadio-0.0.18rc6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1fdf23b26a54e015f27a72acb25e7b7bc1d48dd2e9a8954a07d611cf28f64c2
MD5 cf73f908ef2f095da69126ce9a1fb759
BLAKE2b-256 075723194fa55288e1c030dabfb201b7e3e6329167b8f970f5fb1b60a151c03d

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