Skip to content
@jennifer-language

Jennifer Programming Language

The Jennifer Programming Language

Jennifer

Jennifer - a batteries-included programming language

Jennifer is an interpreted language for real tools: 43 built-in libraries and 76 modules - SQL, JSON / YAML / TOML / XML, HTTP client and server, mail, crypto, MQTT, S3, MCP and more - in one self-contained static binary, with no runtime to install and no dependency tree to resolve. Its design is strict and explicit: conditions must be bool, conversions are spelled out, names never shadow, and an error says where it happened.

use io;
use strings;

def name as string init "world";
io.printf("hello, %s!\n", strings.upper($name));

jennifer-lang.dev - documentation, examples and downloads. Linux is the supported platform; unsupported macOS and Windows builds come with every release.

The project

Repository What it is
jennifer The interpreter (Go, plus an embeddable TinyGo build), its built-in libraries and modules, and the docs
jvc The deck manager: resolves, pins and vendors decks into a project, and publishes them
registry The deck registry: the index jvc resolves against, and its operator CLI
grimoire A documentation site and a printable PDF from a directory of Markdown; builds every deck's manual. Plugins: grimoire-katex, grimoire-mermaid
cantrip Markdown slide decks: an HTML slideshow and a PDF from one file
website www.jennifer-lang.dev, served by a Jennifer program
deck-template The starting point for a new deck, and the CI layer every deck shares

Official decks

Decks are Jennifer's packages. They are vendored into your project with jvc, never installed globally:

jvc add @jennifer/influxdb
import "@jennifer/influxdb/" as influxdb;
Deck What it does
@jennifer/discord Post messages to a Discord channel through a webhook
@jennifer/gotify Push notifications to a Gotify server
@jennifer/influxdb InfluxDB 1.x, 2.x and 3.x: line-protocol writes, InfluxQL and Flux queries
@jennifer/oauthext Vendor OAuth2: Google and Microsoft presets, Google service accounts
@jennifer/prometheus Prometheus metrics in the text exposition format, and queries against its HTTP API
@jennifer/slack Post messages to Slack through an Incoming Webhook
@jennifer/statsd StatsD over UDP: counters, gauges, timings and sets, with DogStatsD tags and batching
@jennifer/telegram A Telegram Bot API client

Every published deck, official or not, can be found in the official deck registry, the index jvc installs from. Community decks live at Deckyard: API clients, file formats, science and more, each with a named maintainer.

Demos

  • demo-jsnake - a multiplayer snake game for the Linux console, over UDP and TCP
  • demo-micrograd - a scalar reverse-mode autodiff engine

Getting involved

Bug reports and pull requests are welcome in each repository. Report a security problem privately to security@jennifer-lang.dev, not as a public issue; the interpreter's SECURITY.md says what a useful report holds.

Jennifer is licensed under LGPL-3.0-only.

Popular repositories Loading

  1. jennifer jennifer Public

    A interpreted programming language written in (Tiny)Go. Batteries-included.

    Go 1

  2. jvc jvc Public

    jennifer vendor console - package manager

  3. demo-micrograd demo-micrograd Public

    a scalar reverse-mode autodiff engine, in the spirit of @karpathy

    Objective-J

  4. grimoire grimoire Public

    Build a documentation website and printable PDF from Markdown

  5. registry registry Public

    jennifer deck registry

  6. website website Public

    Jennifer's Website

Repositories

Showing 10 of 20 repositories

Top languages

Loading…

Most used topics

Loading…