Skip to main content
Documentation

Standard Library

Kite provides a rich standard library of built-in functions for common operations.

Output Functions

print(value)

Output a value without a newline.

print("Hello")
print(" World")
// Output: Hello World

println(value)

Output a value followed by a newline.

println("Hello")
println("World")
// Output:
// Hello
// World

Type Casting Functions

int(value)

Convert a value to an integer.

var x = int("42")      // 42
var y = int(3.7)       // 3
var z = int(true)      // Error: boolean can't be converted

number(value)

Convert a value to a number (floating-point).

var x = number("3.14")  // 3.14
var y = number(42)      // 42.0

decimal(value)

Convert a value to a decimal (high precision).

var price  = decimal("19.99")
var amount = decimal(100)

string(value)

Convert any value to its string representation.

var s = string(42)       // "42"
var t = string(true)     // "true"
var u = string([1,2,3])  // "[1, 2, 3]"

boolean(value)

Convert a value to a boolean.

var b = boolean(1)       // true
var c = boolean(0)       // false
var d = boolean("")      // false
var e = boolean("text")  // true

String Functions

length(value)

Get the length of a string or array.

var len  = length("Hello")   // 5
var size = length([1,2,3])  // 3

charAt(string, index)

Get the character at a specific index.

var ch   = charAt("Hello", 0)  // "H"
var last = charAt("Hello", 4)  // "o"

indexOf(string, search)

Find the index of a substring.

var pos      = indexOf("Hello World", "World")  // 6
var notFound = indexOf("Hello", "xyz")     // -1

substring(string, start, end?)

Extract a portion of a string.

var sub  = substring("Hello World", 0, 5)   // "Hello"
var rest = substring("Hello World", 6)     // "World"

toLowerCase(string)

Convert string to lowercase.

var lower = toLowerCase("HELLO")  // "hello"

toUpperCase(string)

Convert string to uppercase.

var upper = toUpperCase("hello")  // "HELLO"

trim(string)

Remove whitespace from both ends.

var cleaned = trim("  hello  ")  // "hello"

startsWith(string, prefix)

Check if string starts with prefix.

var result = startsWith("Hello World", "Hello")  // true

endsWith(string, suffix)

Check if string ends with suffix.

var result = endsWith("file.txt", ".txt")  // true

split(string, delimiter)

Split string into array.

var parts = split("a,b,c", ",")  // ["a", "b", "c"]

replace(string, search, replacement)

Replace occurrences in string.

var result = replace("Hello World", "World", "Kite")
// "Hello Kite"

format(template, ...args)

Format string with arguments.

var msg = format("Hello, {0}! You have {1} messages.", "Alice", 5)
// "Hello, Alice! You have 5 messages."

Collection Functions

range(end) / range(start, end) / range(start, end, step)

Generate a range of numbers.

var r1 = range(5)         // [0, 1, 2, 3, 4]
var r2 = range(1, 5)      // [1, 2, 3, 4]
var r3 = range(0, 10, 2)  // [0, 2, 4, 6, 8]
var r4 = range(5, 0, -1)  // [5, 4, 3, 2, 1]

first(array)

Get the first element.

var f = first([1, 2, 3])  // 1

last(array)

Get the last element.

var l = last([1, 2, 3])  // 3

isEmpty(array)

Check if array is empty.

var empty    = isEmpty([])     // true
var notEmpty = isEmpty([1]) // false

contains(array, element)

Check if array contains element.

var has = contains([1, 2, 3], 2)  // true
var no  = contains([1, 2, 3], 5)   // false

push(array, element)

Add element to end of array (returns new array).

var newArr = push([1, 2], 3)  // [1, 2, 3]

slice(array, start, end?)

Extract portion of array.

var part = slice([1, 2, 3, 4, 5], 1, 4)  // [2, 3, 4]
var rest = slice([1, 2, 3, 4, 5], 2)     // [3, 4, 5]

reverse(array)

Reverse array order.

var rev = reverse([1, 2, 3])  // [3, 2, 1]

sort(array)

Sort array in ascending order.

var sorted = sort([3, 1, 2])     // [1, 2, 3]
var names  = sort(["c", "a", "b"]) // ["a", "b", "c"]

distinct(array)

Remove duplicate elements.

var unique = distinct([1, 2, 2, 3, 1])  // [1, 2, 3]

flatten(array)

Flatten nested arrays.

var flat = flatten([[1, 2], [3, 4]])  // [1, 2, 3, 4]

join(array, separator)

Join array elements into string.

var str = join(["a", "b", "c"], "-")  // "a-b-c"

sum(array)

Sum numeric array elements.

var total = sum([1, 2, 3, 4, 5])  // 15

average(array)

Calculate average of numeric array.

var avg = average([10, 20, 30])  // 20.0

find(array, predicate)

Find first element matching predicate.

var found = find([1, 2, 3, 4], (x) -> x > 2)  // 3

zip(array1, array2)

Combine two arrays into pairs.

var pairs = zip([1, 2, 3], ["a", "b", "c"])
// [[1, "a"], [2, "b"], [3, "c"]]

Numeric Functions

abs(number)

Get absolute value.

var a = abs(-5)   // 5
var b = abs(5)    // 5

floor(number)

Round down to nearest integer.

var f = floor(3.7)   // 3
var g = floor(-3.2)  // -4

ceil(number)

Round up to nearest integer.

var c = ceil(3.2)   // 4
var d = ceil(-3.7)  // -3

round(number)

Round to nearest integer.

var r = round(3.5)  // 4
var s = round(3.4)  // 3

min(a, b)

Get minimum value.

var m = min(5, 3)  // 3

max(a, b)

Get maximum value.

var m = max(5, 3)  // 5

clamp(value, min, max)

Clamp value within range.

var c = clamp(15, 0, 10)  // 10
var d = clamp(-5, 0, 10)  // 0
var e = clamp(5, 0, 10)   // 5

pow(base, exponent)

Calculate power.

var p = pow(2, 3)   // 8
var q = pow(10, 2)  // 100

sqrt(number)

Calculate square root.

var s = sqrt(16)  // 4.0
var t = sqrt(2)   // 1.4142...

Object Functions

keys(object)

Get array of object keys.

var obj = { name: "Alice", age: 30 }
var k   = keys(obj)  // ["name", "age"]

values(object)

Get array of object values.

var obj = { name: "Alice", age: 30 }
var v   = values(obj)  // ["Alice", 30]

entries(object)

Get array of [key, value] pairs.

var obj = { a: 1, b: 2 }
var e   = entries(obj)  // [["a", 1], ["b", 2]]

hasKey(object, key)

Check if object has key.

var obj = { name: "Alice" }
var has = hasKey(obj, "name")   // true
var no  = hasKey(obj, "email")   // false

get(object, key, default?)

Get value with optional default.

var obj   = { name: "Alice" }
var name  = get(obj, "name")           // "Alice"
var age   = get(obj, "age", 0)          // 0 (default)
var email = get(obj, "email", null)   // null

merge(obj1, obj2, ...objN)

Merge multiple objects.

var a        = { x: 1 }
var b        = { y: 2 }
var c        = { z: 3 }
var merged   = merge(a, b, c)  // { x: 1, y: 2, z: 3 }

// Later objects override earlier ones
var override = merge({ a: 1 }, { a: 2 })  // { a: 2 }

Type Checking Functions

isString("hello")   // true
isNumber(42)        // true
isBoolean(true)     // true
isArray([1, 2, 3])  // true
isObject({ a: 1 })  // true
isNull(null)        // true

Date/Time Functions

now()

Get current date/time as ISO string.

var current = now()  // "2024-01-15T10:30:00.000"

date(year, month, day)

Create a date.

var d = date(2024, 1, 15)  // "2024-01-15"

timestamp()

Get current Unix timestamp (milliseconds).

var ts = timestamp()  // e.g., 1705312200000

addDays(date, days)

Add days to date.

var later   = addDays("2024-01-15", 10)   // "2024-01-25"
var earlier = addDays("2024-01-15", -5)  // "2024-01-10"

diffDays(date1, date2)

Calculate difference in days between dates.

var diff = diffDays("2024-01-01", "2024-01-15")  // 14

formatDate(date, pattern)

Format date using pattern.

var formatted = formatDate("2024-01-15", "MM/dd/yyyy")
// "01/15/2024"

Utility Functions

uuid()

Generate a random UUID.

var id = uuid()  // "550e8400-e29b-41d4-a716-446655440000"

hash(value, algorithm?)

Calculate hash of a value. Default algorithm is SHA-256.

var h    = hash("hello")                    // SHA-256 hash
var md5  = hash("hello", "MD5")           // MD5 hash
var sha1 = hash("hello", "SHA-1")        // SHA-1 hash

base64Encode(string)

Encode string to Base64.

var encoded = base64Encode("Hello, World!")
// "SGVsbG8sIFdvcmxkIQ=="

base64Decode(string)

Decode Base64 to string.

var decoded = base64Decode("SGVsbG8sIFdvcmxkIQ==")
// "Hello, World!"

toJson(value)

Convert value to JSON string.

var json = toJson({ name: "Alice", age: 30 })
// '{"name":"Alice","age":30}'

fromJson(string)

Parse JSON string to value.

var obj = fromJson('{"name":"Alice","age":30}')
// { name: "Alice", age: 30 }

env(name, default?)

Get environment variable.

var home = env("HOME")
var port = env("PORT", "8080")  // default if not set

Quick Reference

CategoryFunctions
Outputprint, println
Castint, number, decimal, string, boolean, any
Stringlength, charAt, indexOf, substring, toLowerCase, toUpperCase, trim, startsWith, endsWith, split, replace, format
Collectionrange, first, last, isEmpty, contains, push, slice, reverse, sort, distinct, flatten, join, sum, average, find, zip
Numericabs, floor, ceil, round, min, max, clamp, pow, sqrt
Objectkeys, values, entries, hasKey, get, merge
TypesisString, isNumber, isBoolean, isArray, isObject, isNull
DateTimenow, date, timestamp, addDays, diffDays, formatDate
Utilityuuid, hash, base64Encode, base64Decode, toJson, fromJson, env

Explore more: Return to Syntax Basics or check the Documentation Home.