{"id":18739580,"url":"https://github.com/springmeyer/paleoserver","last_synced_at":"2025-10-11T04:33:45.540Z","repository":{"id":66365761,"uuid":"785747","full_name":"springmeyer/paleoserver","owner":"springmeyer","description":"multi-threaded async c++ wms for mapnik","archived":false,"fork":false,"pushed_at":"2012-08-14T18:23:58.000Z","size":787,"stargazers_count":18,"open_issues_count":2,"forks_count":6,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-26T14:12:09.089Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/springmeyer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-07-20T02:20:38.000Z","updated_at":"2023-10-10T07:16:22.000Z","dependencies_parsed_at":"2023-02-20T03:00:20.277Z","dependency_job_id":null,"html_url":"https://github.com/springmeyer/paleoserver","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/springmeyer%2Fpaleoserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springmeyer%2Fpaleoserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springmeyer%2Fpaleoserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/springmeyer%2Fpaleoserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/springmeyer","download_url":"https://codeload.github.com/springmeyer/paleoserver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625495,"owners_count":21135513,"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":[],"created_at":"2024-11-07T15:36:24.134Z","updated_at":"2025-10-11T04:33:45.456Z","avatar_url":"https://github.com/springmeyer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# paleoserver\n\nold school wms for mapnik\n\n\n## Overview\n\nPurely a test application at this point to scope various options around concurrent rendering in Mapnik.\n\nOriginally written for the FOSS4G 2010 benchmark.\n\nYou may also be interested in mod_mapnik_wms which runs within Apache:\n\n  http://wiki.openstreetmap.org/wiki/Mod_mapnik_wms\n\nThe main difference is that paleoserver leverages boost::asio for multithreading rather than Apache and can be run from the command line or as a daemon without depending on another webserver for deployment. The draw back is that this lacks the flexibility for custom setup (urls, auth, etc) that comes easily with Apache.\n\nSee also another experimental server written in javascript which is slightly faster: https://github.com/mapbox/landspeed.js\n\n\n## Contact\n\nDane Springmeyer \u003cdane - at - dbsgeo.com\u003e with any questions.\n\n\n# Requires\n\n* Mapnik \u003e= 2.0.x\n* Boost \u003e= 1.42\n* Scons (for build)\n\n\n## Credits\n\nBase server adapted from boost::asio 'server2', io_service per thread design.\n\nURL key-value parsing adapted from boost:spirit2 examples.\n\n\n# Building\n\nInstall scons:\n\n    sudo easy_install scons\n\n\nYou will also likely need to manually tweak the compile paths and flags in SConstruct. The trick is to get paths to libicuuc, libfreetype, libboost*, and libmapnik in the compile lines\n    \nThen from this directory do:\n\n    scons\n\nNext edit the config.json to customize to your mapnik setup.\n\nThen run:\n\n    ./paleoserver config.json\n \nOr just pass all required options on the command line like:\n\n  ./paleoserver 0.0.0.0 8000 2 . /usr/local/lib/mapnik demo/world_latlon.xml\n\n\n# Supports\n\nCan mostly handle WMS 1.1.1 requests from Openlayers like:\n\n`http://127.0.0.1:8000/?LAYERS=__all__\u0026STYLES=\u0026FORMAT=image%2Fpng\u0026SERVICE=WMS\u0026VERSION=1.1.1\u0026REQUEST=GetMap\u0026EXCEPTIONS=application%2Fvnd.ogc.se_inimage\u0026SRS=EPSG%3A900913\u0026BBOX=713309.35838188,4863472.8980582,4863472.8980583,9013636.4377346\u0026WIDTH=256\u0026HEIGHT=256\u0026transparent=false`\n\nDoes not attempt to parse SERVICE, VERSION, REQUEST, EXCEPTIONS, OR BGCOLOR\n\n\n# Caveats\n\nDoes not handle values with spaces, even if encoded.\n\nIf it hangs, make sure you are loading ABI-compatible datasources.\n\nOnly supports GetMap and limited GetMap params - many are currently ignored.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspringmeyer%2Fpaleoserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspringmeyer%2Fpaleoserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspringmeyer%2Fpaleoserver/lists"}