summaryrefslogtreecommitdiff
path: root/docs/objectives.md
blob: 313b3f617b0b883c8814dc90cde5361acf5d9349 (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