Skip to content

A programming language for libraries translated to all the others

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
CC-BY-SA-4.0
LICENSE-CC-BY-SA-4.0
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

temperlang/temper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Temper

Write once. Compile to every language.
A programming language for problem solvers.

User DocumentationQuick TourTutorialReferencePlaygroundDiscord


Temper lets a developer or small team solve a problem once, for every programming language community.

It's a programming language designed for one purpose: to translate well to all the other languages.

It's for writing libraries, and supporting other programming language communities with idiomatic, semantically equivalent libraries.

Temper currently supports*:

C#
C#
Java
Java
JavaScript TypeScript
JS / TS
Lua
Lua
Python
Python
Rust
Rust

Coming soon:

C++ & more.

See also our target language list for version numbers and translation notes.

Community, Getting Help

Contributing

If you'd like to contribute, we'd love to have you. See our contributing guidelines guide.

Building from Source

Temper's toolchain is written in Kotlin, a JVM language with enough meta-language goodies for compiler writing, and we use gradle for build automation.

(Temper integrates deeply with other toolchains, and has a lot of tests, so you need some other language's toolchains available to run the entire test suite. We have plans to containerize our test running to simplify this, but in the meantime, here are some things it helps to have installed locally on a dev machine.)

Prerequisites:

git clone https://github.com/temperlang/temper.git
cd temper
./gradlew cli:build

The Temper CLI will be available in cli/build/install/temper/bin/.

Getting Started

  1. Clone this repository

  2. Create a new directory:

    # Or try: temper init -o hello
    mkdir hello
    cd hello
  3. Create a file hello.temper:

    export let greet(name: String): String {
      "Hello, ${name}!"
    }
    
  4. Build for all default backends (i.e., target languages):

    # Look under temper.out/
    temper build
  5. Use the generated library in your project.

For a complete walkthrough, see the Temper language documenation, especially the Quick Tour.

Licensing and Legalese

COPYRIGHT has the details.

tldr: code is dual licensed as Apache 2 or MIT; documentation as Creative Commons.

Not endorsed or affiliated

We use other programming language projects' logos and/or names with permission, but do not imply or assert any official relationship with or endorsement by those projects' contributors or sponsors. (We, the Temper project contributors, refer to those projects because we love them, as we love all programming languages, their contributors, and user communities.)

About

A programming language for libraries translated to all the others

Topics

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
CC-BY-SA-4.0
LICENSE-CC-BY-SA-4.0
MIT
LICENSE-MIT

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •