janet-lang/janet

A dynamic language and bytecode vm

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 52 minutes ago
Added to GitGenius on September 15th, 2026
Created on March 10th, 2017
Open Issues & Pull Requests: 63 (+0)
GitHub issues: Enabled
Number of forks: 280
Total Stargazers: 4,418 (+0)
Total Subscribers: 60 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 7.0 hours
Mean response time: 9.8 days
90th percentile: 5.0 days
Tracked items: 156

Most active contributors

Sign in to see contributor activity.

How this project is maintained

About 4% of issues opened in the past year have never received a reply. 86% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 73% of issues opened in the past year have been closed, leaving a working backlog. Three people close 73% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 36
New in 7 days: 2
Closed in 7 days: 1
Avg open age: 525 days
Stale 30+ days: 27
Stale 90+ days: 21

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (39)
  • enhancement (32)
  • fuzz (5)
  • llm (3)
  • documentation (2)
  • help wanted (2)
  • needs repro (2)
  • not a bug (1)

Most active issues this week

Detailed Description

Janet is a dynamic language and bytecode virtual machine designed for system scripting, automation, and embedding in C or C++ programs.

Janet addresses the need for a lightweight, embeddable scripting language that balances expressiveness with portability. It combines features from Lisp dialects with practical system programming capabilities, offering more built-in functionality than Lua while remaining significantly easier to embed and port than Python or GNU Guile. The language supports both functional and imperative programming styles through macros, first-class functions, and compile-time computation. Its runtime includes a per-thread event loop for efficient I/O operations, green threads via continuations, and Erlang-style supervision trees. The core library provides over 600 functions covering networking, threading, subprocess management, file system operations, and parsing expression grammars as a regex alternative. Janet distributes as a single C file and header for straightforward embedding, with a separate REPL client that allows interactive development and debugging.

Janet suits projects needing a scripting layer without the complexity of larger languages. It works well for system automation, extending existing C or C++ applications with user-facing scripting, or standalone scripting tasks. Developers choosing between Janet and alternatives like Lua will find Janet offers richer built-in functionality and more sophisticated language features, while those comparing to Guile or Python will appreciate its smaller footprint and simpler embedding process. The language provides both mutable and immutable data structures, garbage collection, tail recursion, and C FFI capabilities for direct interaction with native code.

Development activity shows consistent engagement with the project maintained across multiple platforms. The codebase receives regular updates addressing language features and runtime improvements. Documentation is comprehensive, including an interactive browser-based environment for experimentation, local REPL-based help via the doc macro, and detailed API references. The project maintains active mirror repositories and supports companion projects like Spork, which provides utility modules and tooling for formatting, networking, and package management.