The language of Orchids is statically typed.

Orchids knows about the following types.  We first find the basic types, which can notably be used in database fields, or in array indices:


Type Description
int signed machine integers (32/64 bit)
uint unsigned machine integers (32/64 bit)
float floating-point numbers, corresponding to C’s double
str text strings
bstr binary strings, i.e., raw data
regex compiled regular expression
ipv4 IPv4 network address
ipv6 IPv6 network address
ctime time, given as seconds since the Epoch (00:00:00 UTC, January 1, 1970)
timeval time duration, given as seconds and microseconds
snmpoid SNMP object identifier


We then find the structured types.

Type Description
event Orchids event, as produced by Orchids modules
db[type1,…,typen] in memory database, namely set of n-tuples of elements of type type1,…,typen respectively; each typei must be a basic type, among str, bstr, int, uint, float, ipv4, ipv6, ctime, timeval, snmpoid
db[*] database of arbitrary tuple types; that is, the type of the empty database
[...[type n-dimensional array of elements of type type (n is the number of initial square brackets); the type of indices is not checked, apart from the fact that it should be a basic type