{"id":19010860,"url":"https://github.com/osmcode/experimental-osm-db","last_synced_at":"2026-04-24T11:30:17.675Z","repository":{"id":30619267,"uuid":"34174652","full_name":"osmcode/experimental-osm-db","owner":"osmcode","description":"Experimental OSM Database based on Libosmium","archived":false,"fork":false,"pushed_at":"2021-11-28T13:23:48.000Z","size":72,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-01T21:26:27.499Z","etag":null,"topics":["c-plus-plus","openstreetmap"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osmcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-18T17:07:10.000Z","updated_at":"2021-11-28T13:23:51.000Z","dependencies_parsed_at":"2022-09-08T22:10:27.145Z","dependency_job_id":null,"html_url":"https://github.com/osmcode/experimental-osm-db","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmcode%2Fexperimental-osm-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmcode%2Fexperimental-osm-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmcode%2Fexperimental-osm-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmcode%2Fexperimental-osm-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osmcode","download_url":"https://codeload.github.com/osmcode/experimental-osm-db/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240039896,"owners_count":19738418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","openstreetmap"],"created_at":"2024-11-08T19:12:43.257Z","updated_at":"2026-04-24T11:30:17.628Z","avatar_url":"https://github.com/osmcode.png","language":"C++","readme":"# EODB - Experimental OSM Database\n\nCode for an experimental OSM database. The idea is to explore the possibilities\nof building some kind of OSM database on top of Libosmium. The database can\nbe created from a planet file and later updated from change files. It can then\nbe used to derive other data formats that can be used for rendering etc.\n\nThis code is EXPERIMENTAL, it is not intended to be used for anything beyond\ntrying out different approaches to the problem. It is very preliminary, poorly\ndocumented and will probably not work for you. :-)\n\n\n## Prerequisites\n\nYou'll need Libosmium (http://osmcode.org/libosmium) and its dependencies\ninstalled first.\n\nThese programs will only for on 64bit systems.\n\nFor some programs you need [leveldb](https://github.com/google/leveldb). On\nDebian/Ubuntu that's package `libleveldb-dev`.\n\n\n## Building\n\nThis code uses CMake for its builds. For Unix/Linux systems a simple\nMakefile wrapper is provided to make the build even easier.\n\nTo build just type `make`. Results will be in the `build` subdirectory.\n\nOr you can go the long route explicitly calling CMake as follows:\n\n    mkdir build\n    cd build\n    cmake ..\n    make\n\n\n## Running\n\nThere are several programs implementing different parts of the \"database\". Use\n`eodb_create` to create a \"database\" from any OSM data file. Use `eodb_export`\nto write (part of) the database into an OSM file. Use `eodb_dump` to dump\nindexes and maps to stdout, and use `eodb_lookup` to do index and map lookups.\n\n\n## Database Format\n\nThis code uses a simple database format. Each \"database\" is a directory with\nthe following files:\n\n* `data.osr`: OSM data itself in Osmium internal binary format.\n* `nodes.sparse.idx`, `ways.sparse.idx`, and `relations.sparse.idx`: Index\n  mapping object ID to offset in `data.osr`. Instead of `sparse` it can\n  also be called `dense`.\n* `node2way.map`: Index mapping node IDs to the IDs of ways that contain those\n  nodes.\n* `node2relation.map`, `way2relation.map`, and `relation2relation.map`. Index\n  mapping member IDs to the IDs of the relations with those members.\n* `locations.sparse.idx` or `locations.dense.idx`: Node locations indexed\n  by node ID.\n\n\n## Index Formats\n\nOsmium DB supports two different types of indexes called *dense* and *sparse*.\n\n* The *dense* index is used for large datasets, such as the whole planet or\n  continent-sized extracts. The data is stored in a large array and can be\n  directly looked up by ID. The size of the index only depends on the largest\n  ID used and the size of the value to be looked up.\n* The *sparse* index is used for small datasets, such as city- or country-sized\n  extracts. The data is stored as pairs of ID and Value ordered by ID. The\n  lookup is by binary search. The size depends on the number of IDs used\n  and the size of ID and value.\n\nFile names in the database directory will reflect the type of index used.\n\n\n## License\n\nThis software is released unter the GPL v3. See LICENSE.txt for details.\n\n\n## Author\n\nJochen Topf (https://jochentopf.com/)\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosmcode%2Fexperimental-osm-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosmcode%2Fexperimental-osm-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosmcode%2Fexperimental-osm-db/lists"}