A small, embeddable scripting language for Nim. home manual embedding

hayago (早語, fast language, pronounced ha-ya-go) is a small, fast, embeddable, statically typed scripting language, written in Nim. Its syntax is inspired by Nim itself.

Note: hayago is not finished yet. This readme is a draft of the language’s goals.

Its main goals are:

proc hello(target: string) {
  echo("Hello, " & target)
}

hello("Nim users")

iterator items[T](list: seq[T]) -> T {
  var len = list.len
  for i in 0..<len {
    yield list[i]
  }
}

let features = ["simple", "sound", "fast", "concurrent", "embeddable"]

var message = "hayago is a "
var i = 0
for x in features.items {
  message.add(x)
  if i != features.len - 1 {
    message.add(", ")
  }
  i = i + 1
}
message.add(" scripting language")
echo(message)

Roadmap

You can find the roadmap in the repository’s readme.

Didn’t this use to be called rod?

Yes. I decided to change the name to avoid conflicts with yglukhov/rod, which is a much older project than this. Also, hayago just sounds so much nicer and friendlier, doesn’t it?