Skip to content

ldaniels528/oxide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

158 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงช Oxide โ€” A Lightweight, Modern Language for Data, APIs & Automation

Oxide is a clean, expressive scripting language built for the modern developer. Whether you're transforming data, automating workflows, building APIs, or exploring time-based events, Oxide empowers you with elegant syntax and a practical standard libraryโ€”designed to make complex operations feel intuitive.


Table of Contents


๐Ÿš€ Why Choose Oxide?

โœ… Clean, Functional Syntax

Write less, do more. Concise expressions, intuitive chaining, and minimal boilerplate make Oxide a joy to use.

๐Ÿงฐ Batteries Included

Built-in modules like io, math, http, and more cover the essentialsโ€”without reaching for external libraries.

๐Ÿ”— Composable Pipelines

Use ::: to build seamless transformation pipelinesโ€”perfect for chaining, mapping, filtering, and data shaping.

๐ŸŒ Web-Native by Design

Call an API, parse the response, and persist resultsโ€”in a single line of code.

๐Ÿง  Human-Centered

Inspired by functional programming, Oxide is readable, predictable, and powerful enough for real-world use without excess noise.


๐Ÿงฐ What Can You Do with Oxide?

๐ŸŒ Call APIs and Handle Responses

GET https://api.example.com/users

๐Ÿงฎ Transform Arrays and Maps

users = [ { name: 'Tom' }, { name: 'Sara' } ]
names = users::map(u -> u.name)

๐Ÿ•’ Work with Dates and Durations

DateTime::new::plus(30::days)

๐Ÿ”„ Compose Data Pipelines

let arr = [1, 2, 3, 4]
arr::filter(x -> (x % 2) == 0)::map(x -> x * 10)

๐Ÿ‘ฅ Who Is Oxide For?

  • Data Engineers & Analysts โ€” quick scripting for time and table-based operations.
  • Web Developers โ€” seamless API interactions and response transformations.
  • Scripters & Hackers โ€” ideal for automation, file operations, and glue code.
  • Language Enthusiasts โ€” a functional-style pipeline DSL with just enough structure.

๐Ÿ› ๏ธ Getting Started

๐Ÿ”ง Build the REPL & Server

cargo build --release

Artifacts will be in ./target/release/:

  • oxide โ€“ Oxide REPL / Server

โœ… Run the Tests

cargo test

๐Ÿ”ฌ Over 800 tests (and counting) ensure Oxide's reliability and edge-case coverage.


๐Ÿ“ฆ Core language & Platform

The remainder of this document showcases categorized usage examples across Oxide's standard modules including:

  • io, math, os, oxide and http.

To improve navigation, consider splitting the examples into separate markdown files or auto-generating docs from code annotations using a tool like mdBook, Docusaurus, or a custom Rust doc generator.

๐Ÿงฎ Binary Operators Reference

Oxide provides a rich set of binary operators for arithmetic, logic, assignment, comparison, bitwise manipulation, and expressive data flow. This document summarizes the available operators and their intended semantics.


๐Ÿ”ข Arithmetic Operators

Operator Meaning
+ Addition
++ Concatenation or Join
- Subtraction
*, ร— Multiplication
/, รท Division
% Modulo
** Power (Exponentiation)

๐Ÿง  Assignment Operators

Operator Meaning
= Assign variable
+= Add and assign
-= Subtract and assign
*= Multiply and assign
/= Divide and assign
%= Modulo and assign
&= Bitwise AND and assign
โŽœ= Bitwise OR and assign
^= Bitwise XOR and assign
?= Coalesce and assign
&&= Logical AND and assign
โŽœโŽœ= Logical OR and assign
:= Declare and assign expression

๐Ÿงฎ Bitwise Operators

Operator Meaning
& Bitwise AND
โŽœ Bitwise OR
^ Bitwise XOR
<< Shift Left
>> Shift Right

๐Ÿ” Comparison and Logical Operators

Operator Meaning
==, is Equal
!=, isnt Not Equal
> Greater Than
>= Greater Than or Equal
< Less Than
<= Less Than or Equal
in Value is in Range or Set
like SQL-style pattern match
matches Regular Expression match
&& Logical AND
โŽœโŽœ Logical OR
? NullโŽœUndefined Coalescing

๐Ÿงช Special Operators

Operator Meaning / Use Case
: Alias (value name alias)
:: Namespacing or qualified access
::: Extended namespacing or chaining
<~ Curvy arrow (left)
~> Curvy arrow (right)
-> Function application
.. Exclusive Range (a..b)
..= Inclusive Range (a..=b)

๐Ÿ”€ Data Flow & Piping

Operator Meaning / Use Case
โŽœ> Pipe Forward (`val
โŽœ>> Double Pipe Forward (custom logic)

Development

Build the Oxide REPL and Server

cargo build --release

You'll find the executables in ./target/release/:

  • oxide_repl is the Oxide REST client / REPL
  • oxide_server is the Oxide REST Server

About

Oxide is a hybrid database and streaming messaging system (think Kafka + MySQL); supporting data access via REST and SQL.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages