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

zap-language

v1.1.0

Published

Zap - A simple, fast programming language for building full-stack web apps. Files use .zap or .zp extension.

Readme

Zap Language

A simple, fast native programming language for building full-stack web apps, desktop apps, APIs, CLI tools, and native binaries. Files use .zap or .zp extension.

Created by Mukesh Pathak — Founder, MurphTech Software Solutions


Language Specification

Zap's full native-language architecture draft is available in docs/ZAP_LANGUAGE_SPEC.md. It covers the language design, compiler pipeline, runtime, package manager, ZapWeb, ZapDesk, CLI, examples, roadmap, and editor icon assets.

Zap's Go-style native bootstrap plan is available in docs/NATIVE_BOOTSTRAP_PLAN.md. This is the path from prototype to a self-contained compiler that produces native binaries without depending on JavaScript, Node.js, Python, Go, Java, PHP, Rust, or another language runtime.

The first native compiler skeleton is in compiler, and the frozen v0 grammar is in docs/ZAP_V0_GRAMMAR.md.

The temporary native bootstrap compiler starts in bootstrap/zap0.c. Build and run the first lexer milestone with:

cc -std=c11 -Wall -Wextra -Werror bootstrap/zap0.c -o bootstrap/zap0
bootstrap/zap0 tokens compiler/tests/hello_native.zap

Editor-ready icons are available in assets/icons, with a VS Code icon theme manifest at editor/zap-icon-theme.json.

Syntax highlighting files are available in editor/syntaxes/zap.tmLanguage.json, with language configuration in editor/language-configuration.json.


Contributors

Thanks to these wonderful people who built Zap:

Want your avatar here? Comment on any issue: @all-contributors please add @YOUR_USERNAME for code


Install Goal

zap install toolchain
zap new project hello-zap
cd hello-zap
zap run

Zap's production toolchain will be distributed as a native zap binary, similar to Go's go command.

Current Prototype

This repository still contains an early TypeScript prototype while the native compiler is being designed. That prototype is temporary research, not the final Zap runtime model.

git clone https://github.com/YOUR_USERNAME/zaplang
cd zaplang
npm install
npm run build

Run Your First Program

Create hello.zp:

let name = "World"
print("Hello, " + name + "!")
zap run hello.zp

Language Guide

Variables

let name = "Murph"
let age  = 25
let done = true

Functions

fn greet(name) {
  return "Hello, " + name + "!"
}

print(greet("World"))

If / Else

if age >= 18 {
  print("Adult")
} else {
  print("Minor")
}

Loop

loop i from 0 to 10 {
  print(i)
}

Arrays

let fruits = ["apple", "banana", "mango"]
print(fruits[0])

Objects

let user = { name: "Murph", age: 25 }
print(user.name)

Built-in Functions

| Function | What it does | |----------------|--------------------------| | print(x) | Print to console | | len(x) | Length of string/array | | toNumber(x) | Convert to number | | toString(x) | Convert to string | | json(x) | Convert to JSON string | | parse(x) | Parse JSON string | | type(x) | Get type of value |


Web Server (Full-Stack)

server on 3000 {
  get "/" -> fn(req) {
    return "<h1>Hello from Zap!</h1>"
  }

  get "/api/status" -> fn(req) {
    return { status: "ok", version: "1.0" }
  }

  post "/api/echo" -> fn(req) {
    return { received: req.body }
  }
}
zap run server.zp
# Server running on http://localhost:3000

CLI Commands

zap run   <file.zp>    # Compile and run a Zap file
zap build <file.zp>    # Compile to a native binary
zap test               # Run package tests
zap fmt                # Format Zap source
zap install            # Install package dependencies
zap help               # Show help

How It Works

Long-term native architecture:

your_file.zp
    ↓  Lexer    (text → tokens)
    ↓  Parser   (tokens → AST)
    ↓  Semantic Analyzer (AST → typed AST)
    ↓  Zap IR
    ↓  Optimizer
    ↓  Native Code Generator
    ↓  Zap Linker
    ↓  Native Binary

The current TypeScript implementation is an early research prototype only. The production direction is a Go-style self-contained Zap compiler and runtime.


Contributing

This is an open-source project. PRs are welcome!

  1. Fork the repo
  2. Create your feature branch: git checkout -b my-feature
  3. Commit your changes: git commit -m "Add my feature"
  4. Push: git push origin my-feature
  5. Open a Pull Request

License

MIT — Free to use, modify, and distribute.