GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - osm2pgsql-dev/osm2pgsql-middle-experiments: Experimental software for development of new middle.

BranchesTags
Open more actions menu

Latest commit

 

History

3 Commits
3 Commits

Folders and files

NameName
Last commit message
Last commit date
analysis
analysis
 
 
cmake
cmake
 
 
include
include
 
 
scripts
scripts
 
 
src
src
 
 
stats
stats
 
 
.clang-format
.clang-format
 
 
.clang-tidy
.clang-tidy
 
 
.gitignore
.gitignore
 
 
CMakeLists.txt
CMakeLists.txt
 
 
COPYING
COPYING
 
 
README.md
README.md
 
 

Repository files navigation

Osm2pgsql Middle Experiments

This repository contains some code exploring various aspects of the implementation of a new "middle" that's not using PostgreSQL. Parts of this code might end up in osm2pgsql, but for the moment this is completely independent to make it easy to explore various facets without the overhead of integrating the code with osm2pgsql.

Programs

Call these programs with --help to get usage infos.

ome-tag-encoding

Explores various methods for encoding tags. Results are written to an Sqlite database. See the analysis directory for some SQL scripts to evaluate that data.

Note that the implementation is simplified. Some parts are not implemented 100% correctly, because the goal here is to just get a rough idea how much disk space each algorithm needs. So small deviations aren't a problem. A typical example is storing the length of a tag key/value. Almost all of them are less than 128 chars long, so a 1-byte length field is enough if we use varint encoding.

ome-tag-combinations

Create statistics for combinations of tags that are used in many objects.

Dependencies

You'll need a C++20 capable compiler.

  • expat
  • libosmium
  • nlohmann/json
  • protozero
  • snappy
  • sqlite
  • zlib
  • zstd

With Debian you can install the dependencies as follows:

apt install make cmake g++ libexpat1-dev libosmium2-dev libprotozero-dev \
    libsnappy-dev zlib1g-dev libsqlite3-dev libzstd-dev

Building

As usual with CMake. Something like this:

mkdir build
cd build
cmake ..
make

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Author

Jochen Topf [email protected]

Funding

This is part of Project Coda.

This project is funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429. Additional funding is made available by the Swiss State Secretariat for Education, Research and Innovation (SERI).

About

Experimental software for development of new middle.

osm2pgsql.org/project-coda/

Resources

Readme
GPL-2.0 license
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.