Today every language rebuilds the same infrastructure on its own: parsers, formatters, linters, type checkers, language servers, test runners, package tooling, compilers, and static analysis. Each is built again, from scratch, for each language, and each works a little differently.
Ur builds these once, on a common foundation for engineering languages, and gives you all of them through one tool. Every new language makes the existing tools more useful, and every new tool becomes available across more languages.
Languages
Ur starts with three: Rust, Python, and JavaScript with TypeScript. Java and Ruby are on their way. Each earns its badge by meeting the same bar.
-
Rust
-
Python
-
JavaScript
-
TypeScript
-
Java
-
Ruby
Tools
A grammar for every language, validated against the
language’s own reference parser over large real-world corpora, with
first-class support for language versions and dialects. Ur’s
meta-grammar system takes up the ideas of Rascal, reimplemented in Rust.
A formatter whose output matches each ecosystem’s
reference formatter exactly: rustfmt for Rust, Black for Python,
Prettier for JavaScript and TypeScript.
Clone detection at Level 4: finding code that does the
same thing however differently it is written, within each language.
That is the first milestone. The same foundation is built to carry the rest of the toolchain, one badge at a time:
-
Lint
-
Check
-
Language server
-
Test
-
Run
-
Packages
Open source
Ur is a command-line tool and a set of Rust libraries, released under the AGPL on GitHub. Anyone may file issues. It is built by Powderworks, with large private test corpora and differential testing against each language’s reference tools to keep it exactly consistent with the ecosystems it serves.
Pricing
Free, under the GNU AGPL. Ur is free software: use it,
study it, change it, and share it. If you run a changed Ur for others
over a network, share your changes with them under the same license.
Get Ur on GitHub.
Commercial License, at $1,000 a month or $10,000 a
year, for companies building their own products on top of Ur’s grammars,
parsers, and analysis without the AGPL’s terms. Each year of license
includes a perpetual license to everything released that year, so what
you build on Ur stays yours to keep running even if the license lapses.
Ask about a license.
Enterprise support, by arrangement: a direct line to
the people who build Ur, help adopting it across your languages and
tools, and priority on the issues that matter to you.
Ask about support.