npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tilestream

v1.1.0

Published

A high performance tile server and simple web viewer for MBTiles files.

Downloads

14

Readme

TileStream

TileStream is a high-performance map tile server powered by MBTiles files.

It's like TileCache, TileStache, and other map servers in that it serves normal image files that can be used in OpenLayers, Google Maps, Modest Maps, and other Javascript APIs without much trouble - and with lots of enhancements when you use Wax.

It's not like those tile servers in that it doesn't yet generate maps, it only serves maps that are generated with TileMill. This means that it's reliably fast but not designed to serve live data.

MapBox Hosting uses the same internals as TileStream but adds many features and is a hosted service rather than an installable application.

Features

  • MBTiles-based tile server
  • Minimal gallery view and map viewer for tiles
  • Support for MBTiles interaction using Wax

Requirements

  • TileStream client
    • Tested: Chrome 6+, Firefox 3+, IE8+
    • May work: Opera 11
  • TileStream server
    • Tested: Mac OS X 10.6, Ubuntu 10.04, Ubuntu 11.04
    • Tested: node 0.8.x
    • At least 613MB memory
    • May work: Older versions, other POSIX-compliant systems

Installation: Mac OS X 10.6

Install Xcode for Mac OS X.

Install node. If you are using HomeBrew, use these steps:

brew install node       # Installs the latest node: should be v0.8.x
brew versions node      # Find all the different versions of node available
brew switch node 0.8.15  # set current node version

Install TileStream:

git clone [email protected]:mapbox/tilestream.git
cd tilestream
npm install

Start TileStream:

./index.js (if running from the source copy)

Get options:

./index.js start --help

TileStream should now be accessible from a browser at http://localhost:8888.

Installation: Ubuntu 10.04

Install build requirements:

sudo apt-get install curl build-essential libssl-dev libsqlite3-0 libsqlite3-dev git-core

Install node:

sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs nodejs-dev npm

Install TileStream:

git clone [email protected]:mapbox/tilestream.git
cd tilestream
npm install

Start TileStream:

./index.js (if running from the source copy)

Get options:

./index.js start --help

Custom configuration

If you intend to run TileStream as a server on a hostname or an IP rather than as localhost, specify that hostname when you run TileStream:

tilestream --host 127.0.0.1
tilestream --host yourhost.com

In these examples, you would only be able to access tilestream from 127.0.0.1 or yourhost.com, respectively, due to security restrictions.

Usage

MBTiles files should be placed in the ~/Documents/MapBox/tiles directory, which is created at first run. Each tileset can be previewed at http://localhost:8888/map/[filename] where [filename] is the name of the tileset file without the .mbtiles extension.

Tileset filenames:

  • May contain letters (lower or upper case), numbers, underscores or dashes.

      world-light.mbtiles
      control_room.mbtiles
      PartyLikeIts1999.mbtiles
  • May not contain periods, spaces, non ASCII characters or other punctuation.

      World Light.mbtiles
      BlueWorld-1.0.mbtiles

To see the options available for use with TileStream, run

./index.js start --help

Tests

TileStream tests use Expresso.

cd tilestream
npm install expresso
npm test

Deployment

See the configuration_examples directory for configuration examples with nginx and upstart.

Troubleshooting

If you run into problems during install, such as unfound dependent versions, first try deleting the node_modules/ folder and re-run node install. It seems that some errors leave the installation in an unclean state (for example if you accidentally switched node versions during the install in the hopes of making things work!).

Build Failures

npm install may cause:

Waf: Leaving directory '/Users/sundar/Projects/tilestream/node_modules/sqlite3/build'
Build failed:
-> task failed (err #1):
{task: cxx statement.cc -> statement_1.o}
-> task failed (err #1):
{task: cxx database.cc -> database_1.o}
-> task failed (err #1):
{task: cxx sqlite3.cc -> sqlite3_1.o}
npm ERR! [email protected] preinstall: `node-waf clean || (exit 0); node-waf configure build`
npm ERR! `sh "-c" "node-waf clean || (exit 0); node-waf configure build"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.

Manually installing sqlite3 via npm install sqlite3 resolved this issue. Then re-run npm install in the tilestream folder:

npm install sqlite3
npm install

If you STILL get errors when launching index.js, there may be more modules to install manually. This is the list that worked for me:

npm install sqlite3
npm install mbtiles
npm install jsdom
npm install uglify-js
npm install connect
npm install qs
npm install mime

But again, all this headache may be solved by just deleting your node_modules/ folder and re-running node install.

Contributors