Skip to content

API Reference

Auto-generated by wyn run scripts/generate_api_ref.wyn

282 public functions found.

Args

3 functions

  • char* Args_get(const char* name) {
  • bool Args_has(const char* name) {
  • WynArray Args_positional() {

Base64

2 functions

  • char* Base64_encode(const char* data) { return Encoding_base64_encode(data); }
  • char* Base64_decode(const char* data) { return Encoding_base64_decode(data); }

Crypto

8 functions

  • unsigned int Crypto_hash32(const char* data);
  • unsigned long long Crypto_hash64(const char* data);
  • char* Crypto_sha1(const char* data);
  • char* Crypto_sha1_base64(const char* data);
  • char* Crypto_sha256(const char* data) {
  • char* Crypto_md5(const char* data) {
  • char* Crypto_hmac_sha256(const char* key, const char* data) {
  • char* Crypto_random_bytes(long long n) {

Csv

8 functions

  • long long Csv_parse(const char* text) {
  • long long Csv_row_count(long long handle) {
  • const char* Csv_get(long long handle, long long row, long long col) {
  • const char* Csv_get_field(long long handle, long long row, const char* header) {
  • long long Csv_col_count(long long handle, long long row) {
  • const char* Csv_header(long long handle, long long col) {
  • long long Csv_header_count(long long handle) {
  • void Csv_write(const char* path, WynArray rows) {

Data

4 functions

  • void Data_save(const char* path, WynHashMap* map);
  • WynHashMap* Data_load(const char* path);
  • void Data_save(const char* path, WynHashMap* map) {
  • WynHashMap* Data_load(const char* path) {

DateTime

18 functions

  • long long DateTime_now() { return (long long)time(NULL); }
  • long long DateTime_millis() { FILETIME ft; GetSystemTimeAsFileTime(&ft); ULARGE_INTEGER ul; ul.LowPart=ft.dwLowDateTime; ul.HighPart=ft.dwHighDateTime; return (long long)((ul.QuadPart - 116444736000000000ULL) / 10000); }
  • long long DateTime_micros() { FILETIME ft; GetSystemTimeAsFileTime(&ft); ULARGE_INTEGER ul; ul.LowPart=ft.dwLowDateTime; ul.HighPart=ft.dwHighDateTime; return (long long)((ul.QuadPart - 116444736000000000ULL) / 10); }
  • long long DateTime_millis() { struct timeval tv; gettimeofday(&tv, NULL); return (long long)(tv.tv_sec * 1000LL + tv.tv_usec / 1000); }
  • long long DateTime_micros() { struct timeval tv; gettimeofday(&tv, NULL); return (long long)(tv.tv_sec * 1000000LL + tv.tv_usec); }
  • char* DateTime_format(int timestamp, const char* fmt) {
  • void DateTime_sleep(int seconds) { sleep(seconds); }
  • long long DateTime_diff(long long a, long long b) { return a - b; }
  • long long DateTime_add_seconds(long long t, long long n) { return t + n; }
  • char* DateTime_to_iso(long long timestamp) {
  • char* DateTime_format_duration(long long ms) {
  • long long DateTime_day_of_week(long long timestamp) {
  • long long DateTime_year(long long timestamp) { time_t t = (time_t)timestamp; struct tm* tm = localtime(&t); return tm ? tm->tm_year + 1900 : 0; }
  • long long DateTime_month(long long timestamp) { time_t t = (time_t)timestamp; struct tm* tm = localtime(&t); return tm ? tm->tm_mon + 1 : 0; }
  • long long DateTime_day(long long timestamp) { time_t t = (time_t)timestamp; struct tm* tm = localtime(&t); return tm ? tm->tm_mday : 0; }
  • long long DateTime_hour(long long timestamp) { time_t t = (time_t)timestamp; struct tm* tm = localtime(&t); return tm ? tm->tm_hour : 0; }
  • long long DateTime_minute(long long timestamp) { time_t t = (time_t)timestamp; struct tm* tm = localtime(&t); return tm ? tm->tm_min : 0; }
  • long long DateTime_second(long long timestamp) { time_t t = (time_t)timestamp; struct tm* tm = localtime(&t); return tm ? tm->tm_sec : 0; }

Db

20 functions

  • long long Db_open(const char* path) {
  • int Db_exec(long long handle, const char* sql) {
  • char* Db_query(long long handle, const char* sql) {
  • char* Db_query_one(long long handle, const char* sql) {
  • int Db_exec_p(long long handle, const char* sql, WynArray params) {
  • char* Db_query_p(long long handle, const char* sql, WynArray params) {
  • long long Db_last_insert_id(long long handle) {
  • char* Db_error(long long handle) {
  • void Db_close(long long handle) {
  • long long Db_open(const char* path) { fprintf(stderr, "Error: SQLite not available. Install libsqlite3-dev.\n"); return -1; }
  • int Db_exec(long long h, const char* sql) { return -1; }
  • char* Db_query(long long h, const char* sql) { return ""; }
  • char* Db_query_one(long long h, const char* sql) { return ""; }
  • long long Db_last_insert_id(long long h) { return 0; }
  • char* Db_error(long long h) { return "sqlite not available"; }
  • void Db_close(long long h) {}
  • char* Db_escape(const char* str) {
  • long long Db_table_exists(long long handle, const char* table_name) {
  • char* result = Db_query_one(handle, sql);
  • long long Db_table_exists(long long h, const char* t) { return 0; }

Encoding

7 functions

  • char* Encoding_base64_encode(const char* data) {
  • char* Encoding_base64_decode(const char* data) {
  • char* Encoding_hex_encode(const char* data) {
  • char* Base64_encode(const char* data) { return Encoding_base64_encode(data); }
  • char* Base64_decode(const char* data) { return Encoding_base64_decode(data); }
  • char* Encoding_hex_decode(const char* hex) {
  • char* Encoding_csv_parse(const char* csv) {

Env

3 functions

  • char* Env_get(const char* name) {
  • int Env_set(const char* name, const char* value) {
  • WynArray Env_all() {

File

23 functions

  • char* File_read(const char* p) { return file_read(p); }
  • char* File_read_lines(const char* p) { return file_read(p); }
  • int File_write(const char* p, const char* d) { return file_write(p, d); }
  • int File_exists(const char* p) { return file_exists(p); }
  • int File_delete(const char* p) { return file_delete(p); }
  • int File_copy(const char* s, const char* d) { return file_copy(s, d); }
  • int File_move(const char* s, const char* d) { return file_move(s, d); }
  • long long File_size(const char* p) { return file_size(p); }
  • int File_is_dir(const char* p) { return file_is_dir(p); }
  • int File_is_file(const char* p) { return file_is_file(p); }
  • int File_mkdir(const char* p) { return file_mkdir(p); }
  • char* File_list_dir(const char* p) {
  • int File_append(const char* p, const char* d) {
  • char* File_cwd() { return file_get_cwd(); }
  • long long File_open(const char* path, const char* mode) {
  • char* File_read_line(long long handle) {
  • int File_write_line(long long handle, const char* data) {
  • int File_eof(long long handle) {
  • void File_close(long long handle) {
  • int File_rename(const char* old_path, const char* new_path) { return rename(old_path, new_path) == 0; }
  • char* File_glob(const char* pattern) {
  • char* File_walk_dir(const char* path) {
  • char* File_temp_file() {

HashMap

7 functions

  • void HashMap_insert(int map, const char* key, int value);
  • int HashMap_get(int map, const char* key);
  • int HashMap_contains(int map, const char* key);
  • int HashMap_len(int map);
  • int HashMap_remove(int map, const char* key);
  • void HashMap_clear(int map);
  • void HashMap_free(int map);

HashSet

1 functions

  • WynHashSet* HashSet_new() { return hashset_new(); }

Http

18 functions

  • HttpResponse* Http_post(const char* url, const char* body, const char* content_type);
  • int Http_status(HttpResponse* resp);
  • const char* Http_body(HttpResponse* resp);
  • const char* Http_header(HttpResponse* resp, const char* name);
  • void Http_free(HttpResponse* resp);
  • void Http_respond(long long client_fd, long long status, const char* content_type, const char* body) {
  • int Http_route_match(const char* pattern, const char* path, WynHashMap* params) {
  • WynHashMap* Http_parse_request(const char* raw) {
  • int Http_ctx_fd(WynHashMap* ctx) {
  • void Http_respond_json(int fd, int status, const char* json) {
  • void Http_respond_html(int fd, int status, const char* html) {
  • int Http_serve(int port) {
  • char* Http_accept(int server_fd) {
  • void Http_close_server(int fd) { if (fd >= 0) close(fd); }
  • long long Http_get_json(const char* url) {
  • long long Http_post_json(const char* url, const char* data) {
  • void Http_set_timeout(long long seconds) { _wyn_http_timeout = (int)seconds; }
  • long long Http_timeout() { return _wyn_http_timeout; }

Json

20 functions

  • WynJson* Json_new() { return json_new(); }
  • void Json_set(WynJson* j, const char* k, const char* v) { json_set_string(j, k, v); }
  • void Json_set_string(WynJson* j, const char* k, const char* v) { json_set_string(j, k, v); }
  • void Json_set_int(WynJson* j, const char* k, int v) { json_set_int(j, k, v); }
  • void Json_set_bool(WynJson* j, const char* k, int v) { json_set_int(j, k, v ? 1 : 0); }char* Json_stringify(WynJson* j) { return json_stringify(j); }
  • long long Json_parse(const char* text) {
  • char* Json_get(long long root, const char* key) {
  • long long Json_get_int(long long root, const char* key) {
  • long long Json_has(long long root, const char* key) {
  • long long Json_array_len(long long node) {
  • long long Json_array_get(long long node, long long index) {
  • char* Json_node_str(long long node) {
  • char* Json_keys(long long root) {
  • return Json_parse(body);
  • return Json_parse(body);
  • double Json_get_float(long long root, const char* key) {
  • long long Json_get_bool(long long root, const char* key) {
  • long long Json_get_array(long long root, const char* key) {
  • long long Json_get_object(long long root, const char* key) {
  • char* Json_to_pretty_string(WynJson* j) {

Log

5 functions

  • void Log_set_level(long long level) { log_level = (int)level; }
  • void Log_debug(const char* msg) { if (log_level <= 0) log_with_timestamp("DEBUG", "\x1b[90m", msg); }
  • void Log_info(const char* msg) { if (log_level <= 1) log_with_timestamp("INFO", "\x1b[32m", msg); }
  • void Log_warn(const char* msg) { if (log_level <= 2) log_with_timestamp("WARN", "\x1b[33m", msg); }
  • void Log_error(const char* msg) { if (log_level <= 3) log_with_timestamp("ERROR", "\x1b[31m", msg); }

Math

26 functions

  • float Math_sin(float x) { return sinf(x); }
  • float Math_cos(float x) { return cosf(x); }
  • float Math_tan(float x) { return tanf(x); }
  • float Math_sqrt(float x) { return sqrtf(x); }
  • float Math_pow(float base, float exp) { return powf(base, exp); }
  • float Math_floor(float x) { return floorf(x); }
  • float Math_ceil(float x) { return ceilf(x); }
  • float Math_round_to(float x, long long places) { float m = powf(10, places); return roundf(x * m) / m; }
  • float Math_atan2(float y, float x) { return atan2f(y, x); }
  • float Math_pi() { return 3.14159265358979323846f; }
  • float Math_e() { return 2.71828182845904523536f; }
  • float Math_round(float x) { return roundf(x); }
  • long long Math_abs(long long x) { return x < 0 ? -x : x; }
  • float Math_max(float a, float b) { return a > b ? a : b; }
  • float Math_min(float a, float b) { return a < b ? a : b; }
  • long long Math_checked_add(long long a, long long b) {
  • long long Math_checked_sub(long long a, long long b) {
  • long long Math_checked_mul(long long a, long long b) {
  • float Math_random() {
  • double Math_log(double x) { return log(x); }
  • double Math_log10(double x) { return log10(x); }
  • double Math_exp(double x) { return exp(x); }
  • long long Math_clamp(long long x, long long lo, long long hi) { return x < lo ? lo : (x > hi ? hi : x); }
  • long long Math_sign(long long x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
  • double Math_lerp(double a, double b, double t) { return a + (b - a) * t; }
  • double Math_map_range(double x, double in_min, double in_max, double out_min, double out_max) {

Net

6 functions

  • int Net_listen(int port) {
  • int Net_connect(const char* host, int port) {
  • int Net_send(int sockfd, const char* data) {
  • char* Net_recv(int sockfd) {
  • int Net_close(int sockfd) {
  • char* Net_resolve(const char* hostname) {

Os

8 functions

  • char* Os_platform() {
  • char* Os_arch() {
  • char* Os_hostname() { static char buf[256]; gethostname(buf, sizeof(buf)); return buf; }
  • long long Os_pid() {
  • char* Os_temp_dir() { char* t = getenv("TEMP"); return t ? t : "C:\\Temp"; }
  • char* Os_home_dir() { char* h = getenv("USERPROFILE"); return h ? h : "C:\\"; }
  • char* Os_temp_dir() { return "/tmp"; }
  • char* Os_home_dir() { char* h = getenv("HOME"); return h ? h : "/tmp"; }

Path

4 functions

  • char* Path_basename(const char* p) { return file_basename(p); }
  • char* Path_dirname(const char* p) { return file_dirname(p); }
  • char* Path_extension(const char* p) { return file_extension(p); }
  • char* Path_join(const char* a, const char* b) { return file_path_join(a, b); }

Process

2 functions

  • char* Process_exec_capture(const char* cmd) {
  • long long Process_exec_status(const char* cmd) {

Regex

8 functions

  • bool Regex_match(const char* s, const char* p) { return false; }
  • char* Regex_replace(const char* s, const char* p, const char* r) { (void)p; (void)r; return wyn_strdup(s); }
  • int Regex_find(const char* s, const char* p) { (void)s; (void)p; return -1; }
  • bool Regex_match(const char* s, const char* p) { return regex_match(s, p); }
  • char* Regex_replace(const char* s, const char* p, const char* r) { return regex_replace(s, p, r); }
  • int Regex_find(const char* s, const char* p) { regex_t re; if (regcomp(&re, p, REG_EXTENDED) != 0) return -1; regmatch_t m; int r2 = regexec(&re, s, 1, &m, 0) == 0 ? m.rm_so : -1; regfree(&re); return r2; }
  • char* Regex_find_all(const char* s, const char* p) { return regex_find_all(s, p); }
  • char* Regex_split(const char* s, const char* p) { return regex_split(s, p); }

Socket

8 functions

  • int Socket_connect(const char* host, int port);
  • int Socket_send(int sock, const char* data, int len);
  • char* Socket_recv(int sock, int max_len);
  • void Socket_close(int sock);
  • int Socket_set_timeout(int sock, int seconds);
  • int Socket_set_nonblocking(int sock);
  • int Socket_poll_read(int sock, int timeout_ms);
  • char* Socket_read_line(int sock);

StringBuilder

11 functions

  • long long StringBuilder_new() {
  • void StringBuilder_append(long long handle, const char* s) {
  • char* StringBuilder_to_string(long long handle) {
  • long long StringBuilder_len(long long handle) {
  • void StringBuilder_clear(long long handle) {
  • void StringBuilder_free(long long handle) {
  • void StringBuilder_append_int(long long handle, long long val) {
  • StringBuilder_append(handle, buf);
  • void StringBuilder_append_line(long long handle, const char* s) {
  • StringBuilder_append(handle, s);
  • StringBuilder_append(handle, "\n");

System

9 functions

  • char* System_shell_escape(const char* s) {
  • char* System_exec(const char* cmd) {
  • int System_exec_code(const char* cmd) {
  • void System_exit(int code) { exit(code); }
  • char* System_env(const char* key) {
  • int System_set_env(const char* key, const char* value) {
  • WynArray System_args() {
  • void System_gc() { wyn_arena_reset(); }
  • void System_load_env(const char* path) {

Task

12 functions

  • long long Task_value(long long initial) {
  • long long Task_get(long long handle) {
  • void Task_set(long long handle, long long value) {
  • void Task_add(long long handle, long long amount) {
  • void Task_free_value(long long handle) {
  • long long Task_channel(long long capacity) {
  • void Task_send(long long handle, long long value) {
  • long long Task_recv(long long handle) {
  • void Task_close(long long handle) {
  • long long Task_try_recv(long long handle, long long* out_value) {
  • long long Task_select_2(long long ch1, long long ch2) {
  • long long Task_select_3(long long ch1, long long ch2, long long ch3) {

Toml

4 functions

  • long long Toml_parse(const char* text) {
  • char* Toml_get(long long handle, const char* key) {
  • long long Toml_parse_file(const char* path) {
  • return Toml_parse(content);

Url

2 functions

  • char* Url_encode(const char* str);
  • char* Url_decode(const char* str);

Uuid

2 functions

  • char* Uuid_generate() {
  • char* Uuid_v4() { return Uuid_generate(); }

Ws

4 functions

  • int Ws_connect(const char* url);
  • int Ws_send(int sock, const char* msg);
  • char* Ws_recv(int sock);
  • void Ws_close(int sock);

MIT License