Snapi is new data manipulation language with a rich built-in library and ready-to-use connectors to the most common data sources.
Click below to learn more!
📄️ What is Snapi?
Snapi is new data manipulation language designed to deliver data quickly. It includes a rich built-in library and ready-to-use connectors to the most common data sources. It is designed to be easy to get started but powerful enough to handle the most complex data manipulation use cases.
🗃️ Snapi by Example
📄️ Frequently-Asked Questions
Where does Snapi run?
📄️ Data types
Snapi supports the following data types.
Comments can be written using //. For instance:
Identifiers are case sensitive. Therefore, the following is allowed:
📄️ Program declarations
Program declarations are declarations that are defined at the program level.
📄️ Let declarations and functions
Let declarations bind identifiers to values or functions.
Records are a structure holding multiple named inner types. For example:
📄️ Collections and Lists
Collections and lists are both structures that hold sequences of items of the same type.
📄️ Type alias
A type alias is an alias to an existing type. This provides for a more concise definition.
The following are the set of built-in unary, binary and conditional operators
📄️ Null handling
All expressions can have a null value.
📄️ Error handling
All expressions with the exception of collections can evaluate as an error value.
📄️ Type conversion
Types can be converted to more precise types automatically when no precision loss occurs. This is called upcasting.
Libraries are a mechanism to reuse and share Snapi code. Snapi includes a large set of Built-in libraries but as a developer you can also create your own libraries of Snapi code.
Snapi is a type-safe language, which means that the type of every expression must be well-defined and checked prior to execution. Type-safe languages are safer and more efficient than dynamic languages but usually do so at the cost of flexibility.
📄️ Evaluation model
Declarations in Snapi must be defined in order, i.e. if a declaration f uses a declaration g, then the declaration g must be defined earlier in the program.
📄️ Temporal templates
The functions Timestamp.Parse, Date.Parse and Time.Parse will parse the corresponding type from a string using a template.
📄️ Regular expression patterns
Regular Expression, or regex in short, is a sequence of characters that specifies a search pattern in text.
📄️ Locations with Wildcards
The locations that include paths may include wildcards through use of a special syntax in the URL.
📄️ Field Projection in Collections
If a collection or list contains records, it is possible to extract one of the fields of the inner records directly on the parent list.
🗃️ Built-in Libraries