I/O for mesh files.
There are various mesh formats available for representing unstructured meshes. meshio++ can read and write all of the following and smoothly converts between them:
Abaqus (
.inp), ANSYS msh (.msh), Ansys/APDL coded database (.cdb,.inp), AVS-UCD (.avs), CGNS (.cgns), DOLFIN XML (.xml), COMSOL (.mphtxt), Exodus (.e,.exo), EnSight Gold (geometry,.case/.geo), FLAC3D (.f3grid), FLUX (mesh.pf3, field.dex), FreeFem++ (.msh), H5M (.h5m), HMF (.hmf, experimental, meshio++-specific), I-deas Universal / UNV (.unv), ANSYS Fluent interpolation (.ip), Kratos/MDPA (.mdpa), Medit (.mesh,.meshb), MED/Salome (.med), Modulef (mesh.mfm, field.mff), Nastran (bulk data,.bdf,.fem,.nas), Netgen (.vol,.vol.gz), Neuroglancer precomputed format, Gmsh (format versions 2.2, 4.0, and 4.1,.msh), OBJ (.obj), OFF (.off), OpenFOAM polyMesh (.foam, read-only), PERMAS (.post,.post.gz,.dato,.dato.gz), PLY (.ply), STL (.stl), Tecplot .dat, TetGen .node/.ele, Triangle .node/.ele/.poly, SVG (output only; 2D direct, 3D via skin projection) (.svg), TikZ (LaTeX output only; 2D direct, 3D via skin projection) (.tikz), SU2 (.su2), UGRID (.ugrid), VTK (.vtk), VTP (.vtp), VTU (.vtu), WKT (TIN) (.wkt), XDMF (.xdmf,.xmf).
meshio++ ships a C++20 core (built with pybind11 + scikit-build-core) that reads and writes most formats with zero-copy numpy at the I/O boundary, plus optional HDF5/netCDF acceleration and a selectable parallel backend (AUTO by default — prefers OpenMP, then STL+TBB, then sequential; override with -DMESHIOPLUSPLUS_PARALLEL_BACKEND=...). Every format has a pure-Python fallback, so behaviour and file compatibility are identical whether or not the native libraries are present. For a standalone C++ build use build/configure.sh (Linux/macOS) or build/configure.bat (Windows). Full docs (install, data model, per-format options, CLI) live at the documentation site (sources under doc/).
Install with
pip install meshioplusplus[all]
([all] pulls in all optional dependencies. By default, meshio++ only uses numpy.) You can then use the command-line tool
meshioplusplus convert input.msh output.vtk # convert between two formats
meshioplusplus info input.xdmf # show some info about the mesh
meshioplusplus compress input.vtu # compress the mesh file
meshioplusplus decompress input.vtu # decompress the mesh file
meshioplusplus binary input.msh # convert to binary format
meshioplusplus ascii input.msh # convert to ASCII format
meshioplusplus merge a.vtu b.vtu out.vtu # merge meshes (optional --weld)
meshioplusplus transform in.vtu out.vtu --translate 1,2,3 # affine transform
meshioplusplus clean in.vtu out.vtu --weld # weld / prune / de-dup
meshioplusplus crop in.vtu out.vtu --bbox 0,0,0,1,1,1 # subset by region
meshioplusplus split in.vtu 'out_{key}.vtu' --by type # split by criterion
meshioplusplus stats mesh.vtu # geometric statistics
meshioplusplus convert-cells in.msh out.vtu --mode simplexify # hexes -> tetra
meshioplusplus refine in.vtu out.vtu --levels 2 # uniform subdivision
meshioplusplus partition in.vtu 'out_{part}.vtu' --nparts 4 # N balanced parts
meshioplusplus smooth in.vtu out.vtu --iterations 20 # relax node positions
meshioplusplus data info mesh.vtu # summarize data arrays
meshioplusplus data calc in.vtu out.vtu --point "s = norm(v)" # derive a field
meshioplusplus data to-cell in.vtu out.vtu --keys T # point -> cell average
meshioplusplus data normalize in.vtu out.vtu --cell damage --to 0,1
with any of the supported formats.
The same verbs are available as a standalone C++ binary that needs no Python: grab a ready-to-run, statically-linked build for Linux/macOS/Windows from the GitHub Releases page, or build it yourself with build/configure.sh --cli --build (or -DMESHIOPLUSPLUS_BUILD_CLI=ON). It links only the C++ core, so point/cell sets (and convert -s/-d) — which live only in the Python Mesh — are unavailable there; use the Python CLI for those.
In Python, simply do
import meshioplusplus
mesh = meshioplusplus.read(
filename, # string, os.PathLike, or a buffer/open file
# file_format="stl", # optional if filename is a path; inferred from extension
# see meshioplusplus convert --help for all possible formats
)
# mesh.points, mesh.cells, mesh.cells_dict, ...
# mesh.vtk.read() is also possible
to read a mesh. To write, do
import meshioplusplus
# two triangles and one quad
points = [
[0.0, 0.0],
[1.0, 0.0],
[0.0, 1.0],
[1.0, 1.0],
[2.0, 0.0],
[2.0, 1.0],
]
cells = [
("triangle", [[0, 1, 2], [1, 3, 2]]),
("quad", [[1, 4, 5, 3]]),
]
mesh = meshioplusplus.Mesh(
points,
cells,
# Optionally provide extra data on points, cells, etc.
point_data={"T": [0.3, -1.2, 0.5, 0.7, 0.0, -3.0]},
# Each item in cell data must match the cells array
cell_data={"a": [[0.1, 0.2], [0.4]]},
)
mesh.write(
"foo.vtk", # str, os.PathLike, or buffer/open file
# file_format="vtk", # optional if first argument is a path; inferred from extension
)
# Alternative with the same options
meshioplusplus.write_points_cells("foo.vtk", points, cells)
For both input and output, you can optionally specify the exact file_format (in case you would like to enforce ASCII over binary VTK, for example).
Skin extraction
meshioplusplus.extract_skin derives the boundary surface of a 3D volume mesh (the Kratos SkinDetectionProcess face-hashing algorithm — faces occurring exactly once are boundary; points are compacted, point_data follows):
vol = meshioplusplus.read("part.msh") # tetra/hexa/wedge/pyramid mesh
skin = meshioplusplus.extract_skin(vol) # triangle/quad/... surface mesh
The STL and PLY writers do this automatically for volume meshes (pass skin=False for the legacy drop-volume-cells behavior), and the SVG/TikZ writers render 3D meshes by projecting the skin through an orthographic camera (azimuth/elevation/roll in degrees, default the classic CAD isometric view) with painter's-algorithm depth ordering — that is exactly how the Stanford-bunny logo above is drawn.
Surface extraction
meshioplusplus.extract_surface is the general form of skin extraction: it picks the dimension automatically (a volume mesh → boundary faces, a 2D surface mesh → boundary edges) and can record each facet's parent cell id (record_parent_ids=True). See the surface extraction docs (doc/extract_surface.md).
surf = meshioplusplus.extract_surface(vol) # faces (or edges for a 2D mesh)
edges = meshioplusplus.extract_surface(sheet, record_parent_ids=True)
Mesh quality
meshioplusplus.compute_quality scores every cell on a set of geometric quality metrics (area/volume, scaled Jacobian, aspect ratio, skewness, interior/dihedral angles, warpage) and flags inverted/degenerate cells; attach_quality writes them back as cell_data. See doc/mesh_quality.md.
report = meshioplusplus.compute_quality(mesh)
print(report["num_inverted"], "inverted cells")
annotated = meshioplusplus.attach_quality(mesh) # metrics as cell_data
Reordering / renumbering
meshioplusplus.reorder renumbers nodes and elements to reduce sparse-matrix bandwidth (Reverse Cuthill–McKee) or improve cache locality (Morton / Hilbert space-filling curves). It is a pure permutation — geometry and all data preserved — and returns the applied node/cell permutations so external arrays can be remapped. compute_bandwidth measures the before/after connectivity bandwidth. See doc/reorder.md.
out = meshioplusplus.reorder(mesh, method="rcm") # "morton" / "hilbert" too
out, node_perm, cell_perms = meshioplusplus.reorder(mesh, return_permutation=True)
print(meshioplusplus.compute_bandwidth(mesh), "->", meshioplusplus.compute_bandwidth(out))
Comparison (diff)
meshioplusplus.diff compares two meshes and reports whether they are equivalent within a tolerance (abs_err <= atol + rtol*|expected|), with a structured breakdown (points, cells, data, named sets) and an overall verdict (identical / equal within tolerance / different); meshes_equal is the boolean wrapper for test suites. An optional unordered=True mode matches nodes by spatial proximity, so a shuffled node order still compares equal. See doc/diff.md.
assert meshioplusplus.meshes_equal(a, b, atol=1e-8) # ideal in a regression test
report = meshioplusplus.diff(a, b, unordered=True) # tolerant to shuffled node order
print(report["verdict"])
The meshioplusplus diff a.vtu b.vtu CLI verb sets a nonzero exit code when meshes differ, for direct use in CI / Makefiles.
Merge / combine
meshioplusplus.merge combines two or more meshes into one: it concatenates points (offsetting connectivity so indices stay valid), merges cell blocks by type, concatenates data (per a configurable data_policy), and tags each cell's origin. With weld=True it fuses coincident nodes across inputs within atol using a spatial hash (never O(N²)) — the standard way to stitch adjacent blocks into a watertight mesh. Overlapping set / field-data names are namespaced by source id. See doc/merge.md.
combined = meshioplusplus.merge([a, b, c]) # concatenate
welded = meshioplusplus.merge([left, right], weld=True, atol=1e-8) # fuse the shared interface
Editing (transform / clean / crop / split) and statistics
A bundle of dependency-free mesh-editing utilities:
meshioplusplus.transform— apply an affine transform (translate / scale / rotate / 4×4 matrix / unit-scale) to the points; connectivity and data are carried through. Seedoc/transform.md.meshioplusplus.clean— weld coincident points (spatial hash), drop degenerate and duplicate cells, and remove orphaned points, in one toggleable pass. Seedoc/clean.md.meshioplusplus.crop— extract the part of a mesh inside a bounding box or half-space, pruning unused points (mode="all"/"any"). Seedoc/crop.md.meshioplusplus.split— partition a mesh into several by cell type, connected component (flood-fill), or region (cell_sets/ integer tag). Seedoc/split.md.meshioplusplus.compute_stats— geometric statistics (bounding box, centroid, per-type counts, area, signed/unsigned volume, inverted cells) — the geometric complement toinfo. Seedoc/stats.md.
out = meshioplusplus.transform(mesh, rotate=("z", 90))
out = meshioplusplus.clean(mesh, weld=True, atol=1e-8)
sub = meshioplusplus.crop(mesh, bbox=[0, 0, 0, 1, 1, 1])
pieces = meshioplusplus.split(mesh, by="type") # {"triangle": ..., ...}
s = meshioplusplus.compute_stats(mesh) # dict of measures
Cell conversion (linearize / simplexify / elevate)
meshioplusplus.convert_cells converts a mesh's element representation — which cell types it is built from — while leaving the object it describes intact. See doc/convert_cells.md.
mode="linearize"— every higher-order cell becomes its linear base (tetra10→tetra,hexahedron27→hexahedron), keeping the corner connectivity verbatim and pruning the nodes that become unreferenced.mode="simplexify"— every cell is decomposed into simplices of the same topological dimension (quad→ 2triangle,hexahedron→ 6tetra,wedge→ 3,pyramid→ 2, an n-gon into an (n−2)-triangle fan). No points are added, each parent'scell_datais replicated to its children, and every emitted simplex is positively oriented with volume conserved.mode="elevate"— every linear cell is promoted to its serendipity quadratic counterpart (triangle→triangle6,hexahedron→hexahedron20), adding one node per unique edge at the edge midpoint withpoint_dataset to the endpoint mean.
linear = meshioplusplus.convert_cells(mesh, mode="linearize")
tets = meshioplusplus.convert_cells(mesh, mode="simplexify") # hexes -> tetra
quadratic = meshioplusplus.convert_cells(mesh, mode="elevate")
Each mode is idempotent on cells it does not apply to, so it is safe on a mixed-order mesh, and output is byte-identical across mesh backends and thread counts.
Refinement
meshioplusplus.refine subdivides every cell into congruent children of the same cell type, increasing a mesh's resolution: line → 2, triangle → 4, quad → 4, tetra → 8, wedge → 8, hexahedron → 8, with levels=n applying the templates n times. See doc/refine.md.
New nodes sit at the midpoints of the parent's edges, quad faces and (hexahedron only) body, and carry the mean of that entity's corner values for every point_data array — so a linear field is interpolated exactly. Mid-edge and quad-face-centre nodes are shared between every cell touching the entity, so the refined mesh has no hanging nodes; each parent's cell_data row is replicated to its children.
fine = meshioplusplus.refine(mesh) # one level
finer = meshioplusplus.refine(mesh, levels=2) # 64x the cells in 3D
tagged = meshioplusplus.refine(mesh, record_parent_ids=True)
Children inherit the parent's orientation (zero newly-inverted cells for a well-oriented input), and volume is conserved — exactly for tetra always, and for wedge/hexahedron when the parent is affine. Higher-order cells, pyramid, and ragged blocks have no same-type subdivision and raise by name.
Partitioning
meshioplusplus.partition decomposes a mesh into exactly N balanced pieces for domain decomposition — the count-driven complement to the criterion-driven split. See doc/partition.md.
- SFC (the default fallback, always available, dependency-free): cells are cut into contiguous ranges along a Hilbert space-filling curve of their centroids — equal-weight part sizes differ by at most one cell,
weights=<cell_data>balances a per-cell cost instead, and the assignment is deterministic and byte-identical across mesh backends and thread counts. - KaHIP (the optional quality path): the shared-face dual graph goes through KaHIP's serial
kaffpa(), which actively minimizes the edge cut. Configureimbalance(default 3%),mode(fast/eco/strong, defaulteco— eco/strong carry the quality) andseed. KaHIP is MIT-licensed like meshio++ itself, so enabling it changes nothing about licensing; it is bring-your-own (-DMESHIOPLUSPLUS_WITH_KAHIP=ON+KAHIP_ROOT, Conanwith_kahip, vcpkg featurekahip— next to the HDF5/zstd-style optional deps), links only the serial interface (no MPI), andpip install meshioplusplus[kahip]gives pure-Python installs the same quality path via the MITkahipwheel. Requesting it where absent fails by name — never a silent downgrade.
pieces = meshioplusplus.partition(mesh, 4) # list of 4 meshes
labels = meshioplusplus.partition_labels(mesh, 4) # per-block Int64 part ids
quality = meshioplusplus.partition(mesh, 16, method="kahip", mode="strong")
Pieces keep the input's block structure 1:1, so they recombine into the input: every cell lands in exactly one piece (ghost_layers is reserved for halo growth and raises for now).
Smoothing
meshioplusplus.smooth relaxes point coordinates toward their edge-neighbour centroids to improve element shape, leaving topology and every data value alone: only the points move. See doc/smooth.md.
Both operators are driven by the same centroid displacement. Laplacian (x <- x + lambda*L(x)) smooths strongly per pass but shrinks — over 40 iterations on a jittered 8×8 quad grid it contracts the bounding box by 57%. Taubin (the default) follows each +lambda pass with a larger-magnitude -mu pass that deliberately un-shrinks, leaving the same grid 3.6% smaller. Neighbours are the nodes joined by an actual cell edge, not the element clique, so a structured hex block is a fixed point rather than being bevelled toward a sphere. Boundary nodes, feature nodes (incident boundary facet normals differing by more than feature_angle), an optional frozen mask, and the nodes of blocks whose edge topology is unknown are all pinned by default, and the inversion guard rejects any move that would turn a valid cell inverted.
relaxed = meshioplusplus.smooth(mesh) # 10 Taubin iterations
harder = meshioplusplus.smooth(mesh, iterations=40) # shrink-free even so
lap = meshioplusplus.smooth(mesh, method="laplacian", lambda_=0.4) # note the underscore
out, report = meshioplusplus.smooth(mesh, return_report=True) # nodes moved, max displacement
lambda_ carries a trailing underscore because lambda is a Python keyword, and a negative value means "this method's own default" (0.5 Laplacian, 0.33 Taubin). Point and cell counts, connectivity, cell_data, field_data, point_data values and the points array's dtype all come through unchanged, and output is byte-identical across mesh backends and thread counts.
These operations are exposed across every binding surface (Python, C API, Fortran, WASM) and as the CLI verbs meshioplusplus quality, meshioplusplus extract-surface, meshioplusplus reorder, meshioplusplus diff, meshioplusplus merge, meshioplusplus transform, meshioplusplus clean, meshioplusplus crop, meshioplusplus split, meshioplusplus stats, meshioplusplus convert-cells, meshioplusplus refine, meshioplusplus partition, and meshioplusplus smooth.
Data operations (rename / average / calc / condition / summarize)
A second bundle operates on the data arrays a mesh carries (point_data / cell_data / field_data) rather than on its geometry, which none of them ever modifies:
meshioplusplus.data_rename/data_drop/data_keep— rewrite which arrays a mesh carries and under what names; values, dtypes and shapes are copied verbatim. Seedoc/data_manage.md.meshioplusplus.point_data_to_cell_data/cell_data_to_point_data— move data between locations by averaging, optionally weighted by cell area/volume. Seedoc/data_average.md.meshioplusplus.data_calc— derive a new array from an elementwise expression (+ - * /, parentheses,abs/sqrt/min/max/norm) evaluated by a hand-written parser — no external parser library, no arbitrary-code path. Seedoc/data_calc.md.meshioplusplus.data_condition— clamp, normalize to a target range, or standardize to zero mean / unit standard deviation, per component or by row magnitude. Seedoc/data_condition.md.meshioplusplus.data_info— a read-only per-array summary (dtype, shape, components, min/max/mean, NaN/inf counts) — the data-side complement toinfoandcompute_stats. Seedoc/data_info.md.
out = meshioplusplus.data_calc(mesh, "norm(velocity)", location="point", output="speed")
out = meshioplusplus.point_data_to_cell_data(out, keys=["speed"], suffix="_c")
out = meshioplusplus.data_condition(out, "cell", ["speed_c"], mode="normalize")
out = meshioplusplus.data_rename(out, "point", "T", "temperature")
arrays = meshioplusplus.data_info(out) # list of per-array dicts
These are likewise exposed across every binding surface, and as the nine CLI verbs under the meshioplusplus data group (info, rename, drop, keep, to-cell, to-point, calc, clamp, normalize). See doc/data_operations.md.
Time series
The XDMF format supports time series with a shared mesh. You can write times series data using meshio++ with
with meshioplusplus.xdmf.TimeSeriesWriter(filename) as writer:
writer.write_points_cells(points, cells)
for t in [0.0, 0.1, 0.21]:
writer.write_data(t, point_data={"phi": data})
and read it with
with meshioplusplus.xdmf.TimeSeriesReader(filename) as reader:
points, cells = reader.read_points_cells()
for k in range(reader.num_steps):
t, point_data, cell_data = reader.read_data(k)
Interactive viewer
The browser viewer — reading, rendering and converting entirely client-side.
One call, two backends:
import meshioplusplus
mesh = meshioplusplus.read("part.msh")
meshioplusplus.view(mesh) # pick a backend automatically
meshioplusplus.view(mesh, backend="polyscope") # a native desktop window
meshioplusplus.view(mesh, backend="browser") # vtk.js, in a browser or notebook
The desktop backend is Polyscope, an optional Python-only extra (pip install meshioplusplus[viewer]). It draws solids you can slice into, colours by any point or cell array, and renders headless screenshots for CI and docs:
meshioplusplus.screenshot(mesh, "part.png", color_by="temperature")
The bundled example.msh bracket coloured by element quality — this image is generated by screenshot() itself.
The browser backend needs nothing extra. The same app is hosted as a live demo: drag in any supported format, colour by point or cell data, and convert and download to another format — all client-side, with no server and no upload. Since it runs the WebAssembly build, every format meshio++ reads works there too.
From the command line:
meshioplusplus view part.msh
meshioplusplus screenshot part.msh part.png --size 1600 1200
See the viewer docs for how volume meshes are handled and what each backend can and cannot do.
ParaView plugin
If you have downloaded a binary version of ParaView, you may proceed as follows.
- Install meshio++ for the Python major version that ParaView uses (check
pvpython --version) - Open ParaView
- Find the file
paraview-meshioplusplus-plugin.pyof your meshio++ installation (on Linux:~/.local/share/paraview-5.9/plugins/) and load it under Tools / Manage Plugins / Load New - Optional: Activate Auto Load
You can now open all meshio++-supported files in ParaView.
Benchmarks
How much does the C++ core help? The benchmark/ folder times read/write conversions against the original pure-Python meshio on the formats both support (same in-memory mesh, same machine). The headline input is the bundled example.msh — a real Gmsh bracket (~52k nodes, ~293k cells).
meshio++'s biggest wins are the parallel and text paths: VTU binary+zlib ~16× write (the zlib blocks run across cores via an OpenMP backend with dynamic scheduling — hybrid P+E-core CPUs load-balance too), VTU ASCII ~7× write / ~5× read, and mixed-topology XDMF read ~10×. The binary and HDF5 formats that used to be slower — VTK/Gmsh binary, UGRID, and MED — are now at or above parity after an optimisation pass (bulk-buffered binary I/O, single-instruction bswap endianness conversion, a real parallel backend, an Eigen-backed MED transpose, zero-copy cell reconstruction that moves the connectivity buffer straight into the mesh, and uninitialised reader buffers + thread-parallel block copies so nothing is written twice); binary reads now match or beat numpy's fromfile — Gmsh ~1.7×, single-type VTK ~1.45×, and even mixed-topology VTK ~1.1×. Output stays byte-identical throughout.
The speedup is per-element: text/parallel formats climb out of the small-mesh regime and plateau (large meshes realise the full speedup):
Full methodology and a reproducible notebook are on the Benchmarks doc page (source: benchmark/01_benchmark.ipynb).
Reading only what you need
import meshioplusplus
mesh = meshioplusplus.read("big.vtu", points_only=True) # geometry, no data arrays
mesh = meshioplusplus.read("big.vtu", arrays=["u", "p"]) # only these arrays
meta = meshioplusplus.read_metadata("big.vtu") # counts/names, no heavy arrays
VTU, VTP, XDMF and Gmsh skip the unwanted array bodies outright; other formats are read in full and filtered, and meta["fell_back_to_full_read"] says which happened. Large files can also be memory-mapped (automatic above 16 MiB), which roughly halves peak memory during a read. See selective reads and memory-mapped reading.
VTK XML output can additionally use lz4 (ParaView-readable) or zstd (a meshio++ extension) instead of zlib, when built with -DMESHIOPLUSPLUS_WITH_LZ4=ON / -DMESHIOPLUSPLUS_WITH_ZSTD=ON. zlib remains the default. See compression codecs.
Installation
meshio++ is available from the Python Package Index, so simply run
pip install meshioplusplus
to install.
Additional dependencies (netcdf4, h5py) are required for some of the output formats and can be pulled in by
pip install meshioplusplus[all]
For JavaScript / browser use, the C++ core also ships as a WebAssembly npm package covering 29 of the formats above:
npm install @meshioplusplus/wasm
See the WebAssembly / JavaScript doc page for usage and the format-support table.
C / Fortran API
For HPC codes written in C or Fortran, the C++ core also builds as an installable shared library (libmeshioplusplus, pure-C99 header, pkg-config + find_package support) with a modern OO Fortran 2008 module on top:
./build/configure.sh --fortran --tests --build # --c-api for the C API alone
cmake --install build/cpp-release --prefix /opt/meshioplusplus
mio_mesh* m = mio_read("in.msh", NULL);
printf("%lld points\n", (long long)mio_mesh_num_points(m));
mio_write("out.vtu", m, NULL);
mio_mesh_free(m);
use meshioplusplus
type(mio_mesh) :: m
call m%read("in.msh")
call m%write("out.vtu")
call m%free()
The C API is also packaged for Conan (root conanfile.py) and vcpkg (overlay port under ports/meshioplusplus/), both driving the same install/find_package path:
conan create . -o meshioplusplus/*:with_hdf5=True
vcpkg install meshioplusplus --overlay-ports=ports
Full mesh access (build meshes from raw arrays, zero-copy readback) is covered on the C API and Fortran doc pages.
Single-header C++
The whole C++ core is also amalgamated into one self-contained, STB-style header — single_include/meshioplusplus/meshioplusplus.hpp — with pugixml bundled and no external dependencies by default. Drop it in, no CMake or linking required:
// in exactly ONE .cpp:
#define MESHIOPLUSPLUS_IMPLEMENTATION
#include "meshioplusplus/meshioplusplus.hpp"
// elsewhere: just #include it (declarations only)
g++ -std=c++20 -I single_include main.cpp
It is generated by ./tools/amalgamate.sh and kept in sync by CI. See the single-header doc page (optional HDF5/netCDF/zlib formats via MESHIOPLUSPLUS_HAS_* macros).
C++ mesh backends
Standalone C++ builds (no Python) can swap the in-memory mesh structure at compile time via MESHIOPLUSPLUS_MESH_BACKEND — every format works identically under each backend:
- MESHIO (default; the Python extension and PyPI wheels always use it) — mirrors the Python
meshio.Mesh; - NATIVE — the fastest pure-C++ structure (canonical Float64/Int64 storage, cell-type enum, CSR ragged blocks); the WebAssembly build uses it;
- KRATOS — a Kratos Multiphysics-style
ModelPart(Nodes/Elements/Conditions/SubModelParts) plus a header-only templated bridge that populates a realKratos::ModelPartwith no Kratos build dependency.
./build/configure.sh --mesh-backend NATIVE --tests --build
See the C++ mesh backends doc page.
Testing
To run the meshio++ unit tests, check out this repository, install it with the test extras, and type
pytest tests/
License
meshio++ is published under the MIT license.
Acknowledgements
meshio++ is a fork of meshio by Nico Schlömer and its contributors (MIT). meshio is where the Mesh data model, the cell-type naming, and the great majority of the format readers and writers come from; this fork adds a C++20 core, an operations layer, and the C/Fortran/WebAssembly bindings on top of that foundation. The original copyright is retained in LICENSE.
Some code and test fixtures also come from Simvia's meshlane fork of meshio (MIT), credited per-change in CITATION.cff and CHANGELOG.md.
The C++ core is dependency-free by design. Everything below is either optional, bundled, or confined to one binding or tool.
Runtime dependencies (Python)
| Project | Used for | License |
|---|---|---|
| NumPy | the array type the whole data model is built on | BSD-3-Clause |
| Rich | CLI output formatting | MIT |
Optional dependencies
| Project | Extra | Used for | License |
|---|---|---|---|
| Polyscope | [viewer] |
the desktop viewer and screenshot() |
MIT |
| h5py | [all] |
the Python fallback for CGNS, H5M, MED, XDMF | BSD-3-Clause |
| netCDF4 | [all] |
the Python fallback for Exodus | MIT |
| KaHIP | [kahip] / CMake |
the quality graph-partitioning backend | MIT |
| zstandard, lz4 | [codecs] |
the Python fallback for the optional VTK block codecs | BSD-3-Clause / BSD-2-Clause |
Bundled and build-time
| Project | Used for | License |
|---|---|---|
| pugixml | XML parsing in the C++ core (vendored in cpp/third_party/) |
MIT |
| Eigen | the MED Fortran↔C transpose (git submodule, optional) | MPL-2.0 |
| pybind11 | the Python bindings | BSD-3-Clause |
| scikit-build-core | the CMake-driven build backend | Apache-2.0 |
| Emscripten | the WebAssembly build | MIT / NCSA |
| GoogleTest | the C++ test suite | BSD-3-Clause |
| zlib, Zstandard, LZ4 | optional compression codecs | zlib / BSD-3-Clause / BSD-2-Clause |
| HDF5, netCDF | optional native paths for HDF5/netCDF-backed formats | BSD-3-Clause / MIT-like |
Browser viewer (isolated under viewer/)
| Project | Used for | License |
|---|---|---|
| vtk.js | all rendering, colour maps and the scalar bar | BSD-3-Clause |
| Vite | the app build | MIT |
| vite-plugin-singlefile | the self-contained wheel-bundled build | MIT |
| Playwright | the end-to-end tests and the documentation screenshots | Apache-2.0 |
Also
Kratos Multiphysics (BSD-3-Clause) is the source of the skin-detection algorithm, the EnSight writer logic, the KaHIP partitioning approach and the FindKaHIP.cmake module, all these 3 implementation are from the original author of this project as well. Also thanks to its ModelPart design informs the KRATOS mesh backend. VTK and Verdict (both BSD-3-Clause) define the mesh-quality formulas. The documentation is built with VitePress (MIT) and Doxygen (GPL-2.0, used as a tool only). The logo renders the Stanford Bunny ("Stanford Bunny — Digitized!" by MakerBot, CC-BY).
Thank you to all of them.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meshioplusplus-7.10.0.tar.gz.
File metadata
- Download URL: meshioplusplus-7.10.0.tar.gz
- Upload date:
- Size: 11.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
457808a8a0120ae249c65f6f1d43bea01395aa68fa562f00ab19ab6f6ed0ae2d
|
|
| MD5 |
213b35f9bde21a42a1ea36f22acdfa4e
|
|
| BLAKE2b-256 |
8053e5e5eec6cf2f031039e5730046d10dc1f4e7c7ab2f222675388130e54e4e
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0.tar.gz:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0.tar.gz -
Subject digest:
457808a8a0120ae249c65f6f1d43bea01395aa68fa562f00ab19ab6f6ed0ae2d - Sigstore transparency entry: 2212329405
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ceaadb78035ba268e80da3b7c5e2d19520b332b7b4de72c876f1de8c71563fbb
|
|
| MD5 |
3a7624b0381b78159ca75b91acf97508
|
|
| BLAKE2b-256 |
100212d56d08309be33f80b6ac0287e5de719e6f8e5f4ae6cfcf460835688097
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp312-cp312-win_amd64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp312-cp312-win_amd64.whl -
Subject digest:
ceaadb78035ba268e80da3b7c5e2d19520b332b7b4de72c876f1de8c71563fbb - Sigstore transparency entry: 2212329506
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72fac8cb05409168af53459338d82fc79dd9541a08900008ccfb41bc3affddd2
|
|
| MD5 |
5ea895ec8671756230e2ce37a44e6736
|
|
| BLAKE2b-256 |
c0653edfdb23d275b9ca9370fa44a7e157dcec45a0281c930bd8cce929a4ec98
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp312-cp312-manylinux_2_34_x86_64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp312-cp312-manylinux_2_34_x86_64.whl -
Subject digest:
72fac8cb05409168af53459338d82fc79dd9541a08900008ccfb41bc3affddd2 - Sigstore transparency entry: 2212329723
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp312-cp312-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp312-cp312-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b85016987330658f7dc917e3fba492bd3fdbac2c7cdc51f87b1a7c5b6feef789
|
|
| MD5 |
2f1b4a0975395f2cf86d20e5569718b1
|
|
| BLAKE2b-256 |
c4029fd49302b148ddec434814a6aaa7b66dd39caa4d065d79f95bbf0d073488
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp312-cp312-manylinux_2_34_aarch64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp312-cp312-manylinux_2_34_aarch64.whl -
Subject digest:
b85016987330658f7dc917e3fba492bd3fdbac2c7cdc51f87b1a7c5b6feef789 - Sigstore transparency entry: 2212329615
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp312-cp312-macosx_13_0_x86_64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp312-cp312-macosx_13_0_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.12, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5162a93a40e38f9924862081e1603c92b6a7dbb4c2df21b0cce4d118fa05f52
|
|
| MD5 |
424a5c341155350883263595bfcd1c69
|
|
| BLAKE2b-256 |
5c47e30bae02b4eeaeb0478843d725ce343682c2cc6c960d1930eb63c1bf6994
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp312-cp312-macosx_13_0_x86_64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp312-cp312-macosx_13_0_x86_64.whl -
Subject digest:
f5162a93a40e38f9924862081e1603c92b6a7dbb4c2df21b0cce4d118fa05f52 - Sigstore transparency entry: 2212329567
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp312-cp312-macosx_13_0_arm64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp312-cp312-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.12, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9c4847c32542179ea93715b2d9e9e67538c7462e4ea36958a6183fdc199f5a8
|
|
| MD5 |
cd2cbdc1cb9d7ef6c28c4a0016018f15
|
|
| BLAKE2b-256 |
508b503b547e787ab685c33fbe8e3a1cbd717f6fca7fa5e0335d5b5f41599736
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp312-cp312-macosx_13_0_arm64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp312-cp312-macosx_13_0_arm64.whl -
Subject digest:
f9c4847c32542179ea93715b2d9e9e67538c7462e4ea36958a6183fdc199f5a8 - Sigstore transparency entry: 2212329604
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ec55a467899f82e972033d770c172dab7a34ff6f7042ab16645c633a398e917
|
|
| MD5 |
785a7ee2aa22f52f55de1c474abe5b76
|
|
| BLAKE2b-256 |
27c7d629fe20bcb4e4a197b192d37e8920b2b63b5b18b1c57362af423c8795c3
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp311-cp311-win_amd64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp311-cp311-win_amd64.whl -
Subject digest:
1ec55a467899f82e972033d770c172dab7a34ff6f7042ab16645c633a398e917 - Sigstore transparency entry: 2212329482
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
891a3026e6a88c239a3e9967c52600307d3d10c0dbd0d1ec0dbba79c8083adae
|
|
| MD5 |
b9fe628a94869df2ccbb2dd94c97a4c1
|
|
| BLAKE2b-256 |
9bf16986880dd4596dd0bd5b59febc627eea072295d4a0fe4d99a01fefa8bee1
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp311-cp311-manylinux_2_34_x86_64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp311-cp311-manylinux_2_34_x86_64.whl -
Subject digest:
891a3026e6a88c239a3e9967c52600307d3d10c0dbd0d1ec0dbba79c8083adae - Sigstore transparency entry: 2212329469
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp311-cp311-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp311-cp311-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85abe5aad01d072bddcbbf4d02728b476a25e5cd1ba960fea50e0c333ec6e0c8
|
|
| MD5 |
8d11b7d2bdd7446c49f78db74b020fae
|
|
| BLAKE2b-256 |
18d0a7bd3dd937bba2cb4658c48f68290d9310089ca61de5f67212f002cd5950
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp311-cp311-manylinux_2_34_aarch64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp311-cp311-manylinux_2_34_aarch64.whl -
Subject digest:
85abe5aad01d072bddcbbf4d02728b476a25e5cd1ba960fea50e0c333ec6e0c8 - Sigstore transparency entry: 2212329674
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp311-cp311-macosx_13_0_x86_64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp311-cp311-macosx_13_0_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.11, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e7addf69a3e60c6e3dd385195e92ce51de1d398cf5aa04474190a6368d43730
|
|
| MD5 |
197112f2ab08aa737bcb30b4409de43c
|
|
| BLAKE2b-256 |
89bc11e62a259bf4bb604f6d3be3437bebfde035992a71c0f9fccaad82a8a8b2
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp311-cp311-macosx_13_0_x86_64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp311-cp311-macosx_13_0_x86_64.whl -
Subject digest:
7e7addf69a3e60c6e3dd385195e92ce51de1d398cf5aa04474190a6368d43730 - Sigstore transparency entry: 2212329705
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp311-cp311-macosx_13_0_arm64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp311-cp311-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.11, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd19c3a0c678f3d9ad4b497a29d1457b2e20e04095325492e62c7bcfee67e7f3
|
|
| MD5 |
8e71c267d812d80a6d292d044563b193
|
|
| BLAKE2b-256 |
f26b3b5c9edd47182d9e3b5166ed2a56717a376e1ce35a6d90afc680541d7d18
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp311-cp311-macosx_13_0_arm64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp311-cp311-macosx_13_0_arm64.whl -
Subject digest:
cd19c3a0c678f3d9ad4b497a29d1457b2e20e04095325492e62c7bcfee67e7f3 - Sigstore transparency entry: 2212329688
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77035c978502ea662f4693b2d72d48a840357e4f3b51827a68c454dd1b245650
|
|
| MD5 |
52f0f3d27b021ffa219720c92bb5d8f2
|
|
| BLAKE2b-256 |
81b338960524f51e3cb32e147400dab69e516a5f2ef15479bf89ed8787372c04
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp310-cp310-win_amd64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp310-cp310-win_amd64.whl -
Subject digest:
77035c978502ea662f4693b2d72d48a840357e4f3b51827a68c454dd1b245650 - Sigstore transparency entry: 2212329631
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp310-cp310-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp310-cp310-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e8910a8cd3edcb24abec3ad5ab2dc7bd85e0366b015290d190c151c52429f99
|
|
| MD5 |
d5823ee7a48eeecb9700e805d4eea155
|
|
| BLAKE2b-256 |
fe7706e88ebf3880f434e0199063779287435360a74d08ab594afc7366e62272
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp310-cp310-manylinux_2_34_x86_64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp310-cp310-manylinux_2_34_x86_64.whl -
Subject digest:
3e8910a8cd3edcb24abec3ad5ab2dc7bd85e0366b015290d190c151c52429f99 - Sigstore transparency entry: 2212329430
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp310-cp310-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp310-cp310-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.10, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8ddd5d780f624f6167d258044574ccba954cbc9bcecfa9db5c63160256782f9
|
|
| MD5 |
50e9e167e2d9add6c6b085353c609ee4
|
|
| BLAKE2b-256 |
263a63e662b22be75fe91fe79788cd7729760afffebc1bcc4ee4adc3b424bad6
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp310-cp310-manylinux_2_34_aarch64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp310-cp310-manylinux_2_34_aarch64.whl -
Subject digest:
e8ddd5d780f624f6167d258044574ccba954cbc9bcecfa9db5c63160256782f9 - Sigstore transparency entry: 2212329714
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp310-cp310-macosx_13_0_x86_64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp310-cp310-macosx_13_0_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.10, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b38305c7d877367f65be2fc1bf3817c833cc058726cfcb22aaa342ccfcfd189
|
|
| MD5 |
ad5509e1dd32326dd0db6f8b64e18faa
|
|
| BLAKE2b-256 |
07c83f15b362a7e57dfe49cc76599fbc6780bc8c44fb271434c91ece6812e816
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp310-cp310-macosx_13_0_x86_64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp310-cp310-macosx_13_0_x86_64.whl -
Subject digest:
0b38305c7d877367f65be2fc1bf3817c833cc058726cfcb22aaa342ccfcfd189 - Sigstore transparency entry: 2212329521
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp310-cp310-macosx_13_0_arm64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp310-cp310-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.10, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3edecdcea4db377c3722bd04cb23506387d3396a0c7257713d8d01efb5205ffa
|
|
| MD5 |
8142abb1132f08b0b9bda038bd1995af
|
|
| BLAKE2b-256 |
48f79579c93290024f2522341266b69c5367614dc1e523ee08c7191ace420199
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp310-cp310-macosx_13_0_arm64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp310-cp310-macosx_13_0_arm64.whl -
Subject digest:
3edecdcea4db377c3722bd04cb23506387d3396a0c7257713d8d01efb5205ffa - Sigstore transparency entry: 2212329661
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c43b7e60b38b6ae6209bf9d22df07bece336673bcfe59e42d1a64ddb4f1b9924
|
|
| MD5 |
76ef28c48c9e91eabf54783f4dcf5985
|
|
| BLAKE2b-256 |
5edf53a242a35168337be055b2f83b778c04413a0b987741e5b9bc7b259f4284
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp39-cp39-win_amd64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp39-cp39-win_amd64.whl -
Subject digest:
c43b7e60b38b6ae6209bf9d22df07bece336673bcfe59e42d1a64ddb4f1b9924 - Sigstore transparency entry: 2212329461
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp39-cp39-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp39-cp39-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.9, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d80e8b4ffc6f2d613a869e722a8ad3de9f149eecf915359729267ffb4a97f51a
|
|
| MD5 |
52f9055f9e652eae5351b4ec10c7e8b7
|
|
| BLAKE2b-256 |
d3146fa4cff49483629f6fdfef57aaf4267c66c3fa34f6344c3eb9b38b6b21df
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp39-cp39-manylinux_2_34_x86_64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp39-cp39-manylinux_2_34_x86_64.whl -
Subject digest:
d80e8b4ffc6f2d613a869e722a8ad3de9f149eecf915359729267ffb4a97f51a - Sigstore transparency entry: 2212329582
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp39-cp39-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp39-cp39-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.9, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cc34fbf576713e72302004e30893a17bf149ba54523f8beef9227c4eb3bc127
|
|
| MD5 |
0d647e74454cba5c7f4703446ff6dd69
|
|
| BLAKE2b-256 |
e544dee998296349428efeb96773156c3044bef59758b1216c162b6410bc7e65
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp39-cp39-manylinux_2_34_aarch64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp39-cp39-manylinux_2_34_aarch64.whl -
Subject digest:
2cc34fbf576713e72302004e30893a17bf149ba54523f8beef9227c4eb3bc127 - Sigstore transparency entry: 2212329641
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp39-cp39-macosx_13_0_x86_64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp39-cp39-macosx_13_0_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.9, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8de4544f201a59d1bbc217b1d4177888524a61e88622114ae3d564ea88f2a24e
|
|
| MD5 |
0126520e64f7c9b2cb620e979ba2f08f
|
|
| BLAKE2b-256 |
c22a5069cbeedc76ddb79374380bf4dddb37cf732e912d310b659185c63de053
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp39-cp39-macosx_13_0_x86_64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp39-cp39-macosx_13_0_x86_64.whl -
Subject digest:
8de4544f201a59d1bbc217b1d4177888524a61e88622114ae3d564ea88f2a24e - Sigstore transparency entry: 2212329448
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file meshioplusplus-7.10.0-cp39-cp39-macosx_13_0_arm64.whl.
File metadata
- Download URL: meshioplusplus-7.10.0-cp39-cp39-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.9, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d2d0d1c0ef2df5251b75d07baef3f50b00c790d131daf91880f5402b745dc0c
|
|
| MD5 |
05c345d4d7811d0bd3c3ac25997bd5a6
|
|
| BLAKE2b-256 |
25b281dc547595da29fd0f593582f9c6e47c0ae39fe8f81b57632311e4526059
|
Provenance
The following attestation bundles were made for meshioplusplus-7.10.0-cp39-cp39-macosx_13_0_arm64.whl:
Publisher:
wheels.yml on loumalouomega/meshioplusplus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meshioplusplus-7.10.0-cp39-cp39-macosx_13_0_arm64.whl -
Subject digest:
9d2d0d1c0ef2df5251b75d07baef3f50b00c790d131daf91880f5402b745dc0c - Sigstore transparency entry: 2212329535
- Sigstore integration time:
-
Permalink:
loumalouomega/meshioplusplus@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Branch / Tag:
refs/tags/v7.10.0 - Owner: https://github.com/loumalouomega
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@01b8de9c174a4b81e7ffe5182c53c30b68833b92 -
Trigger Event:
push
-
Statement type: