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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@geoalgeria/ferroviaire

v1.0.0

Published

Algeria's rail & urban-transit network — 692 stations & stops (train, tram, metro, aerial tramway, gondola) across 50 wilayas, bilingual FR/AR, with operator (SNTF/SETRAM/SEMA), line, and wilaya/commune linkage. Wikidata + OpenStreetMap composite. JSON, C

Readme

English | Français | العربية

@geoalgeria/ferroviaire

Algeria's rail & urban transit — every station and stop, as data you can install.

npm npm downloads License: MIT

692 rail and urban-transit nodes across Algeria — train stations, tram stops, metro stations, aerial tramways and gondolas — with bilingual FR/AR names, operator (SNTF / SETRAM / SEMA), line membership, GPS coordinates, and wilaya/commune linkage. A Wikidata + OpenStreetMap composite, shipped as JSON, CSV, and GeoJSON. Part of GeoAlgeria.

Operators (sources): SNTF (rail), SETRAM (tramways), SEMA/EMA (Métro d'Alger). Intercity bus stations live in @geoalgeria/gares-routieres.

npm install @geoalgeria/ferroviaire
import ferroviaire from "@geoalgeria/ferroviaire";

const all = ferroviaire.stations();               // 692
const trams = ferroviaire.stationsByType("tram");  // 190 tram stops
const inAlger = ferroviaire.stationsByWilaya(16);  // rail + metro + tram in Algiers

What you can build

  • Multimodal maps — one GeoJSON layer with train, tram, metro, and cable-transit nodes.
  • Nearest-station lookups — coordinates on every record.
  • Network views — filter by type, operator, or network (tram cities, Métro d'Alger).
  • Bilingual UIs — French and Arabic names on most records.

What's inside

| Type | Count | Operator | | --- | --- | --- | | Rail (train) | 427 | SNTF | | Tram | 190 | SETRAM (7 city networks) | | Metro | 41 | SEMA — Métro d'Alger | | Aerial tramway | 24 | — | | Gondola | 10 | — |

Spanning 50 wilayas, every node geocoded. wilaya_code is linked against the geoalgeria 69-wilaya model.

Coverage note: this is the node universe from Wikidata + OSM. SETRAM operates 172 tram stations across 7 networks; SEMA's Métro d'Alger has 19 operational stations (Wikidata lists more metro nodes, incl. entrances/extensions). Heavy-rail per-line status (SNTF) is not yet modelled.

Formats

import stations from "@geoalgeria/ferroviaire/data/stations.json" with { type: "json" };
// or via CDN: https://cdn.jsdelivr.net/npm/@geoalgeria/ferroviaire/data/stations.json
import ferroviaire, { type Station } from "@geoalgeria/ferroviaire";
const stations: Station[] = ferroviaire.stations();

CSV and GeoJSON are in the repo under data/ and bundled in every GitHub Release:

data/
  stations.json            # 692 nodes (array)
  metadata.json            # source, counts, generated_at
  csv/stations.csv
  geojson/stations.geojson # Point features (all geocoded)

Record shape

{
  "id": "16-021",
  "name": "Place des Martyrs",
  "name_fr": "Place des Martyrs",
  "name_ar": "ساحة الشهداء",
  "type": "metro",
  "line": "ligne 1 du métro d'Alger",
  "operator": "SEMA",
  "network": "Métro d'Alger",
  "wilaya_code": "16",
  "commune": "Casbah",
  "commune_code": 1605,
  "lat": 36.7887,
  "lng": 3.0603,
  "geo_precision": "exact",
  "source": "wikidata+osm",
  "wikidata": "Q...",
  "osm_id": "node/..."
}

type is one of rail | tram | metro | aerial_tram | gondola. source is wikidata, osm, or wikidata+osm (matched within ~150 m). name may be null for a few OSM-only stops. wilaya_code/commune come from a nearest-centroid join against geoalgeria.

Source & license

A composite of Wikidata (CC0) and OpenStreetMap (© OpenStreetMap contributors, ODbL 1.0), with operators from SNTF, SETRAM, and SEMA/EMA. Code is MIT; OSM-derived data remains under ODbL — keep attribution. Run npm run fetch to regenerate. For authoritative, real-time information, verify with the operators.

Browse all packages →


Made by Yasser's Studio · LinkedIn · X · [email protected]