I have designed a lightweight mesh library for finite element and boundary element methods (https://github.com/PetrKryslUCSD/MeshCore.jl). I believe it could deliver the desirable features of such libraries, in particular it supports generation of arbitrary incidence relations (and derived meshes, as needed). Even though it currently implements only linear shapes (simplex and cuboid types), adding quadratic and higher-order shapes is trivial. There is quite a bit of documentation on the concepts of topology processing ( guide). I have tried to make the storage of data efficient, but so far I have refrained from premature optimizations.