#game #gamedev #map #level #ogmo


A Rust crate for reading and writing Ogmo Editor 3 projects and levels

5 releases

0.1.0 Nov 12, 2020
0.0.4 Nov 9, 2020
0.0.3 Oct 14, 2020
0.0.2 Oct 7, 2020
0.0.1 Oct 7, 2020

#141 in Game dev

30 downloads per month

MIT license

758 lines


Build Status Crates.io Documentation License

ogmo3 is a Rust crate for reading and writing Ogmo Editor 3 projects and levels.

It is modelled loosely off the API for Haxe's ogmo-3-lib (for now, at least), and aims to provide reasonably type-safe access to the entirety of Ogmo Editor 3.3.0's JSON schema.


ogmo3 = "0.1"


use ogmo3::{Level, Project};

fn main() {
    let project = Project::from_file("./example.ogmo").unwrap();
    let level = Level::from_file("./levels/level.json").unwrap();

For a full example of how to interpret the data in an Ogmo project, see the sample code.


  • This crate does not provide a runtime or renderer, but should make it easier to create one tailored to your project.
  • If you deserialize a project/level and then reserialize it, there is no guarentee that the formatting/ordering of fields will be retained, as this would increase the complexity of the library significantly. However, there should never be any loss of data (and if there is, please file a bug report)!
  • This crate has only been tested with Ogmo Editor 3.3.0 - data from earlier versions will likely fail to parse due to missing fields.


This project is licensed under the terms of the MIT License.


~46K SLoC