APIs

Core

Pure helpers. They run in every language pack and in the hermetic Studio sandbox — no network, no disk.

JavaScript uses sirius.family.member. Tcl uses sirius::family::member. Go and WASM guests use a flat, idiomatic surface. The live catalog is GET /studio/sirius-api.

const body = sirius.json.decode(msg.raw);
body.site = sirius.text.upper(body.site || "");
body.processed_at = sirius.datetime.format(sirius.now(), "%Y-%m-%dT%H:%M:%S");
sirius.log.info("mapped " + body.site);
result = { message: body };

This page lists 74 symbols. The same catalog drives Studio autocomplete.

See also: Overview · Standards · I/O and runtime · Devices

sirius.text

SymbolSignatureReturnsSummary
sirius.text.capitalizesirius.text.capitalize(s)stringcapitalize
sirius.text.containssirius.text.contains(s, sub)boolsubstring test
sirius.text.ends_withsirius.text.ends_with(s, suffix)boolsuffix test
sirius.text.formatsirius.text.format(template, args)stringexpand a template with {} / {0} placeholders against args
sirius.text.lowersirius.text.lower(s)stringlower-case
sirius.text.padsirius.text.pad(s, width, pad?, side?)stringpad to a fixed width (side left/right, default right)
sirius.text.regex_replacesirius.text.regex_replace(s, pattern, replacement)stringreplace every RE2 match ($1/${name} in replacement)
sirius.text.replacesirius.text.replace(s, old, new)stringreplace all occurrences
sirius.text.splitsirius.text.split(s, sep)list of stringssplit on a separator
sirius.text.starts_withsirius.text.starts_with(s, prefix)boolprefix test
sirius.text.substrsirius.text.substr(s, start, length?)stringrune substring by start (negative = from end) and optional length
sirius.text.trimsirius.text.trim(s)stringtrim surrounding whitespace
sirius.text.uppersirius.text.upper(s)stringupper-case

sirius.json

SymbolSignatureReturnsSummary
sirius.json.decodesirius.json.decode(json)valuedecode a JSON string
sirius.json.encodesirius.json.encode(value)json stringencode a value to JSON
sirius.json.mergesirius.json.merge(a, b)valuedeep-merge two decoded values (b wins; objects recurse, arrays concat)
sirius.json.pathsirius.json.path(value, path)valueresolve a dotted path (a.b[0].c) against a decoded value

sirius.codec

SymbolSignatureReturnsSummary
sirius.codec.base64_decodesirius.codec.base64_decode(base64)bytesbase64 decode
sirius.codec.base64_encodesirius.codec.base64_encode(data)base64 stringbase64 encode
sirius.codec.bzip2_inflatesirius.codec.bzip2_inflate(data)bytesbzip2 inflate
sirius.codec.gunzipsirius.codec.gunzip(data)bytesgzip inflate
sirius.codec.gzipsirius.codec.gzip(data)gzip bytesgzip deflate
sirius.codec.hex_decodesirius.codec.hex_decode(hex)byteshex decode
sirius.codec.hex_encodesirius.codec.hex_encode(data)hex stringhex encode
sirius.codec.html_escapesirius.codec.html_escape(s)stringescape &<>’” for HTML/XML text
sirius.codec.html_unescapesirius.codec.html_unescape(s)stringreverse html_escape (resolves entities)
sirius.codec.url_decodesirius.codec.url_decode(s)stringreverse url_encode
sirius.codec.url_encodesirius.codec.url_encode(s)stringpercent-encode for a URL query component
sirius.codec.uu_decodesirius.codec.uu_decode(data)bytesuudecode
sirius.codec.uu_encodesirius.codec.uu_encode(data)stringuuencode
sirius.codec.zlib_deflatesirius.codec.zlib_deflate(data)zlib byteszlib deflate
sirius.codec.zlib_inflatesirius.codec.zlib_inflate(data)byteszlib inflate

sirius.crypto

SymbolSignatureReturnsSummary
sirius.crypto.aes_cbc_decryptsirius.crypto.aes_cbc_decrypt(key, iv, ciphertext)plaintextAES-CBC decrypt
sirius.crypto.aes_cbc_encryptsirius.crypto.aes_cbc_encrypt(key, iv, plaintext)ciphertextAES-CBC encrypt
sirius.crypto.aes_decryptsirius.crypto.aes_decrypt(key, blob, aad?)plaintextAES-GCM decrypt
sirius.crypto.aes_encryptsirius.crypto.aes_encrypt(key, plaintext, aad?)ciphertextAES-GCM encrypt
sirius.crypto.constant_time_equalsirius.crypto.constant_time_equal(a, b)boolconstant-time string comparison (secrets/MACs/tokens)
sirius.crypto.digestsirius.crypto.digest(algo, data)hex stringhex digest
sirius.crypto.hmacsirius.crypto.hmac(algo, key, data)hex stringhex HMAC
sirius.crypto.pbkdf2sirius.crypto.pbkdf2(password, salt, iterations, keyLen, algo?)derived keyPBKDF2 key derivation
sirius.crypto.random_bytessirius.crypto.random_bytes(n)base64 stringn cryptographically secure random bytes (base64)
sirius.crypto.rsa_decryptsirius.crypto.rsa_decrypt(privatePem, ciphertext, algo?)plaintextRSA-OAEP decrypt
sirius.crypto.rsa_encryptsirius.crypto.rsa_encrypt(publicPem, plaintext, algo?)ciphertextRSA-OAEP encrypt
sirius.crypto.signsirius.crypto.sign(privatePem, algo, data)signatureRSA sign
sirius.crypto.verifysirius.crypto.verify(publicPem, algo, data, signature)boolRSA verify

sirius.datetime

SymbolSignatureReturnsSummary
sirius.datetime.addsirius.datetime.add(ts, unit, n)int (unix seconds)shift a timestamp by n units (seconds/minutes/hours/days/weeks)
sirius.datetime.diffsirius.datetime.diff(a, b, unit)numberdifference (a - b) expressed in a unit
sirius.datetime.formatsirius.datetime.format(ts, format?, utc?)stringformat a Unix timestamp (strftime)
sirius.datetime.from_hl7sirius.datetime.from_hl7(s)int (unix seconds)parse an HL7 v2 timestamp to Unix seconds
sirius.datetime.parsesirius.datetime.parse(s, format?)int (unix seconds)parse a timestamp to Unix seconds (auto-detect or strftime format)
sirius.datetime.to_hl7sirius.datetime.to_hl7(ts, utc?)stringformat a timestamp as an HL7 v2 stamp (YYYYMMDDHHMMSS)

sirius.date

SymbolSignatureReturnsSummary
sirius.datesirius.date(format, ts?, utc?)stringformat a timestamp (strftime subset)

sirius.now

SymbolSignatureReturnsSummary
sirius.nowsirius.now()int (unix seconds)current Unix time (whole seconds)

sirius.clock

SymbolSignatureReturnsSummary
sirius.clocksirius.clock()float (seconds)current wall-clock time (fractional seconds)

sirius.time

SymbolSignatureReturnsSummary
sirius.time.datesirius.time.date(format, ts?)stringformat a local timestamp
sirius.time.difftimesirius.time.difftime(a, b)numberdifference between two timestamps
sirius.time.gmdatesirius.time.gmdate(format, ts?)stringformat a UTC timestamp
sirius.time.stampsirius.time.stamp()intcurrent Unix time

sirius.log

SymbolSignatureReturnsSummary
sirius.log.debugsirius.log.debug(message)emit a debug log line
sirius.log.errorsirius.log.error(message)emit an error log line
sirius.log.infosirius.log.info(message)emit an info log line
sirius.log.warnsirius.log.warn(message)emit a warning log line

sirius.env

SymbolSignatureReturnsSummary
sirius.env.getsirius.env.get(name)stringread a scoped environment value
sirius.env.hassirius.env.has(name)booltest presence of an environment key

sirius.uuid

SymbolSignatureReturnsSummary
sirius.uuidsirius.uuid()stringrandom RFC 4122 v4 UUID

sirius.hash

SymbolSignatureReturnsSummary
sirius.hashsirius.hash(algo, data)hex stringhex digest (md5/sha1/sha256/sha512)

sirius.util

SymbolSignatureReturnsSummary
sirius.util.guidsirius.util.guid()stringrandom GUID (alias of sirius.uuid)
sirius.util.md5sirius.util.md5(s)hex stringhex MD5 digest

sirius.xml

SymbolSignatureReturnsSummary
sirius.xml.buildsirius.xml.build(spec)string (xml)construct an XML element from a nested spec { tag, attrs?, text?, children? }
sirius.xml.parsesirius.xml.parse(raw)tree (map)parse XML to a tree
sirius.xml.xpathsirius.xml.xpath(raw, expr)list of stringsevaluate a lightweight XPath subset (//tag, /a/b) → matching element texts
sirius.xml.treesirius.xml.tree(raw)nodeparse XML into a navigable node

sirius.validate

SymbolSignatureReturnsSummary
sirius.validate.hl7sirius.validate.hl7(raw, required?)list of issuesvalidate HL7 v2 well-formedness + required segments
sirius.validate.jsonsirius.validate.json(value, schema)list of issuesvalidate a value against a minimal JSON-schema subset