gdstk
Python module for creation and manipulation of GDSII files.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.9; C++ build dependencies (zlib, qhull, CMake) needed only if compiling from source rather than installing pre-built wheels.
- 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 · maintenance · safety
(unclear) — 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.
last release 2026-07-16 (29 days) · last repo commit 2026-07-24 · 493 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 212,997 downloads/mo, #9,445 on PyPI
Alternatives
Verify before relying
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")- 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.
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 on it.
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
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.
Requires Python >=3.9; C++ build dependencies (zlib, qhull, CMake) needed only if compiling from source rather than installing pre-built wheels.
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")
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 | Not declared unclear |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 2 packagesnumpytyping_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 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: ManufacturingIntended Audience :: Science/ResearchLicense :: OSI Approved :: Boost Software License 1.0 (BSL-1.0)Operating System :: OS IndependentProgramming Language :: C++Programming Language :: PythonProgramming Language :: Python :: Implementation :: CPythonTopic :: Scientific/Engineering :: Electronic Design Automation (EDA)Typing :: Typed |
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
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “GDSII file creation and editing”
- gdstkGdstk is a Python module for creating and manipulating GDSII and…
- in-placeProvides an InPlace class for reading and writing files in-place,…
- ezdxfezdxf creates, reads, modifies, and writes DXF documents across…
Give your agent the search over MCP, or paste the wish link into any chat.
More Electronic Design Automation (EDA) packages
Parses and elaborates SystemRDL 2.0 register description language into a traversable register model, enabling custom code generation for hardware register spaces.
Install it if you need to parse SystemRDL files or build custom register generators.
Tests whether a graph is planar, computes planar embeddings, draws planar graphs as ASCII art, and isolates forbidden subgraphs using algorithms from the Edge Addition Planarity Suite.
cocotb is a Python framework for writing testbenches that simulate and verify VHDL and Verilog hardware designs through coroutine-based cosimulation.
pyslang provides Python bindings to parse, analyze, and elaborate SystemVerilog code, exposing the underlying slang compiler's syntax tree and evaluation capabilities for programmatic inspection and manipulation.
Converts between SystemRDL register descriptions and IP-XACT XML format, enabling import and export workflows for hardware register modeling.
KLayout is a Python package for layout viewing, editing, and scripting in electronic design automation (EDA) workflows, providing programmatic access to design manipulation and analysis.
See also gdsfactory · kwasm · mapbox-earcut · pyclipper · dvsim · kfactory · svgpathtools · cascadio · cadquery-ocp