What is Lynxer?
Lynxer is a small, statically-flavoured, C-style programming language with a
standalone native runtime. Source files use the .lynx extension,
and every program defines global setup() followed by
global main().
The interpreter is written in C++17 and runs programs without a Python or other host runtime. Its standard library ships as native shared libraries — C++ and Rust backends behind one documented C ABI — so a program can open sockets, decode images, play sound, query SQLite or drive a windowed game loop without pulling in a scripting host.
A single --compile command turns a program and everything it
imports into one standalone ELF executable that needs nothing from the build
tree.
Standalone C++ / Rust runtime Linux amd64 / ARM64 MIT licensed
A first program
global setup(){
str name = input("What's your name? ");
}
global main(){
println("Hello, ", name, "!");
}
Save it as hello.lynx, then run it with
./lynxer/lynxer hello.lynx.
A little more
global setup(){
importAs("math", "m");
}
global main(){
for(int i = 1; i < 4; i = i + 1){
println("sqrt(", i, ") = ", m.sqrt(i));
}
}
Help Lynxer get recognised
Lynxer is a young language, and the best thing you can do to help it grow is to use it in public. GitHub decides which languages it highlights by looking at how much code is written in them — so every open Lynxer project is an argument for Lynxer earning its own place in GitHub's language list (Linguist), with proper syntax highlighting and language statistics.
If you build something with Lynxer, please:
- Publish the source on GitHub — anything from a small script to a full project helps.
-
Add the
lynxertopic to the repository. Open the repo, click the gear next to Topics, and addlynxer. This is how people (and GitHub) discover Lynxer projects. -
Tell GitHub that
.lynxis Lynxer by adding a.gitattributesfile at the root of your project:
That stops your code being counted as another language while Lynxer is still being added.*.lynx linguist-language=Lynxer
That's it — no sign-up, no ceremony. Make something, tag it
lynxer, and share it. The more Lynxer code that is visible on
GitHub, the stronger the case for Lynxer to be recognised as a language of
its own. If you maintain a project, you can also help by supporting the
language listing in github/linguist.
Documentation
The reference documentation covers the language, the command line, every
standard-library module and the native-module ABI. It lives at
/docs/.