summaryrefslogtreecommitdiff
path: root/docs/objectives.md
blob: efb90b776f46425f769aae67403c97e6a101c82e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Objectives

---

## Implicit Error Handling

All operations return a `Result` that can be manually or automatically checked

## Asynchronous First

No functions, only coroutines

## All Code Is Thread Safe

Values are atomic and all containers have a `mutex` like mechanism that is implicitly locked before use

## Strongly Typed

Dynamic types are represented by `Any`, these types have to be matched to a type before they can be used

## Single Invocation

Just In Time Compilation

## Asymmetric C Interoperability

KPL code can call C code, C code can call certain KPL code

## Minimal Dependencies

Run On Linux With `io_uring` For `X86-64` (X64) And `Aarch64` (A64) Only

GCC, Make and OpenSSL; should compile on *most* distributions without any extra steps

## Low Resource Usage

Should work on servers with 1 Core and 1 Gigabyte of RAM