gdstk
Python module for creation and manipulation of GDSII files.
What it is and what it does
Gdstk is a C++ library with a Python interface for designing and manipulating GDSII and OASIS files—the standard formats for electronic chip layouts, photonic circuits, and mechanical designs. It offers boolean operations on polygons, polygon offsetting, and efficient point-in-polygon testing. The package ships as pre-compiled wheels for modern Python versions on Windows, macOS, and Linux, with runtime dependencies on numpy and typing_extensions.
The library is used in electronic design automation, planar lightwave circuit design, and mechanical engineering workflows where complex CAD layouts need to be programmatically generated or modified. Its main constraint is that it requires Python >=3.9 and depends on compiled C++ components; however, pre-built wheels eliminate the need to compile locally on most platforms.
Use it for:
- Programmatically generate chip layouts and mask designs for semiconductor manufacturing.
- Create and manipulate photonic circuit layouts for integrated photonics applications.
- Perform boolean operations on polygon sets for layout optimization and design verification.
- Read and write GDSII and OASIS files in automated design workflows or batch processing.
- Implement polygon offsetting for trace routing and feature scaling in CAD design scripts.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Gdstk is a Python module for creating and manipulating GDSII and OASIS files, with support for boolean operations, polygon offsetting, and point-in-polygon queries for CAD layout design.
Yes—if you work with GDSII or OASIS files in chip design, photonics, or mechanical CAD. Gdstk is actively maintained, has no known vulnerabilities, ships as pre-built wheels for common platforms, and offers performance improvements over earlier tools. The Boost Software License 1.0 is permissive and poses no commercial restrictions. Install friction is moderate due to C++ compilation, but wheels eliminate that for most users.
Install
gdstk on PyPI
pip
pip install gdstkuv
uv add gdstkpoetry
poetry add gdstkInstalling gdstk
Before you install
Medium install friction due to compiled C++ components; wheels are pre-built for Python 3.10–3.13 on common platforms (macOS, Linux, Windows), reducing friction. Active maintenance with a release 29 days ago signals ongoing support.
License in practice
Licensed under Boost Software License 1.0 (BSL-1.0), a permissive open-source license allowing commercial and derivative use with minimal restrictions. License treatment marked unclear in metadata, but the raw text is a standard permissive license.
Quickstart
pip install gdstk
import gdstk
library = gdstk.Library()
cell = gdstk.Cell("example")
rect = gdstk.rectangle((0, 0), (10, 10))
cell.add(rect)
library.add(cell)
library.write_gds("output.gds")
Requires Python >=3.9; C++ build dependencies (zlib, qhull, CMake) needed only if compiling from source rather than installing pre-built wheels.
Verify before relying
- Whether the package's performance gains over its predecessor remain consistent across different layout types and real-world use cases.
- Completeness of type hints coverage beyond the 'Typing :: Typed' classifier.
- Whether the unclear license treatment in metadata reflects an actual ambiguity or is a data artifact.
Package facts
| License | Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation… (full text in the JSON record) (unclear) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — numpy, typing_extensions |
| Maintenance | actively maintained — 29 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 212,997/month — #9,445 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: gdstk-1.0.1-cp310-cp310-macosx_10_9_universal2.whl; gdstk-1.0.1-cp310-cp310-macosx_10_9_x86_64.whl; gdstk-1.0.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; gdstk-1.0.1-cp310-cp310-musllinux_1_2_x86_64.whl; gdstk-1.0.1-cp310-cp310-win_amd64.whl; gdstk-1.0.1-cp311-cp311-macosx_10_9_universal2.whl; gdstk-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl; gdstk-1.0.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; gdstk-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl; gdstk-1.0.1-cp311-cp311-win_amd64.whl; gdstk-1.0.1-cp312-cp312-macosx_10_13_universal2.whl; gdstk-1.0.1-cp312-cp312-macosx_10_13_x86_64.whl; gdstk-1.0.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; gdstk-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl; gdstk-1.0.1-cp312-cp312-win_amd64.whl; gdstk-1.0.1-cp313-cp313-macosx_10_13_universal2.whl; gdstk-1.0.1-cp313-cp313-macosx_10_13_x86_64.whl; gdstk-1.0.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; gdstk-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl; gdstk-1.0.1-cp313-cp313-win_amd64.whl
Keywords: GDSII, OASIS, CAD, layout
Tags
More Electronic Design Automation (EDA) packages
Parses and elaborates SystemRDL 2.0 register…
permissive · top 15,000 on PyPI
planarityTests whether a graph is planar, computes…
permissive · top 15,000 on PyPI
cocotbcocotb is a Python framework for writing…
permissive · top 15,000 on PyPI
pyslangpyslang provides Python bindings to parse,…
permissive · top 15,000 on PyPI
peakrdl-ipxactConverts between SystemRDL register…
copyleft · top 15,000 on PyPI
klayoutKLayout is a Python package for layout viewing,…
copyleft · top 15,000 on PyPI
gdsfactoryGDSFactory generates CAD files (GDS, OASIS,…
unclear · top 15,000 on PyPI
kwasmkwasm bundles KLayout's WebAssembly-compiled…
copyleft · top 15,000 on PyPI
mapbox-earcutFast 2D polygon triangulation using the Mapbox…
permissive · top 5,000 on PyPI
pyclipperPyclipper performs polygon clipping operations…
permissive · top 5,000 on PyPI
dvsimDVSim is a Python-based build and run system…
permissive · top 15,000 on PyPI
kfactoryKFactory is a Python framework for designing…
unclear · top 15,000 on PyPI
svgpathtoolsReads, writes, and analyzes SVG Path objects…
permissive · top 5,000 on PyPI
cascadioConverts STEP files to GLB (glTF binary) format…
unclear · top 15,000 on PyPI
cadquery-ocpcadquery-ocp provides Python bindings to the…
permissive · top 5,000 on PyPI