Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Build status Coverity Scan Build Status Codecov License Version

C library for geometry input/output

gmio is a reusable C library providing complete I/O support for various CAD file formats(eg. STL)

gmio aims to be fast, portable(C99 conformance) and feature-rich.

Main highlights:

  • "Abstract" streams that does not tie the user to C stream(FILE*)
  • Buffering of input/ouput for efficient device usage
  • Operations can be easily aborted
  • Progress report about the I/O operation
Supported formats Read Write
AMF uncompressed
AMF zip
AMF zip64
STL ascii
STL binary(little-endian)
STL binary(big-endian)

Building gmio

gmio can be built with CMake, by default a static library is generated.

Read the Build instructions


The HTML reference manual generated by Doxygen is here

There is also a wiki

Getting help

For now use the gmio issue tracking system provided by GitHub at

Just create an issue with label help wanted or question.

How to report a bug

The gmio bug tracking system is open to the public at

If you think you have found a bug in gmio, we would like to hear about it so that we can fix it.

Always include the following information in your bug report:

  • the name and version number of your compiler
  • the name and version number of your operating system
  • the version of gmio you are using
  • what configure options it was compiled with.

If the problem you are reporting is only visible at run-time, try to create a small test program that shows the problem when run.


gmio is made available under a "2-clause" BSD license.


"gmio" logo rendered with Prism font(thanks to Erik Yin !)