I don't fully understand your requirements, but does mapnik [0] do what you need?
It's cross platform (Linux, OS X, Windows, and BSD) [1] and written in C++. There are bindings for Python/Node/C++.
There is also maplibre-native [2] (which suports Android and iOS as well as Linux/Windows/macOS).
Mapnik is usually used to pre-render raster tiles on a workstation or server. MapLibre Native is a native alternative to the MapLibre GL JS library (both forks of the no-longer open-source MapBox equivalents) for rendering vector tiles in the browser.
Don't want a pre-render, want it to be rendered on the fly on device with no internet connection. Think Android phone or Windows tablet on 2G network at best so bandwidth is not really there.
We basically need a "tilesource" for XYZ PNG based tiles that is fed on the fly from vector tiles and is cross platform enough that it relies only on something like Skia.
This is not what memsom is asking for, but for generating rendered raster MBTiles from any styled source (including vector data), there is this tool that uses maplibre-native: https://github.com/ConservationMetrics/mapgl-tile-renderer
It's cross platform (Linux, OS X, Windows, and BSD) [1] and written in C++. There are bindings for Python/Node/C++.
There is also maplibre-native [2] (which suports Android and iOS as well as Linux/Windows/macOS).
Mapnik is usually used to pre-render raster tiles on a workstation or server. MapLibre Native is a native alternative to the MapLibre GL JS library (both forks of the no-longer open-source MapBox equivalents) for rendering vector tiles in the browser.
[0]: https://mapnik.org/
[1]: https://github.com/mapnik/mapnik/blob/master/INSTALL.md
[2]: https://github.com/maplibre/maplibre-native