diff --git a/.github/workflows/cmake-ubuntu-latest.yml b/.github/workflows/cmake-ubuntu-latest.yml index 041956d..8d46def 100644 --- a/.github/workflows/cmake-ubuntu-latest.yml +++ b/.github/workflows/cmake-ubuntu-latest.yml @@ -54,41 +54,41 @@ jobs: - name: Run Examples (crypto) run: ./scripts/run_examples.sh crypto - #- name: Run Examples (external/curl) - # run: ./scripts/run_examples.sh external/curl + #- name: Run Examples (extensions/curl) + # run: ./scripts/run_examples.sh extensions/curl - #- name: Run Examples (external/ini) - # run: ./scripts/run_examples.sh external/ini + #- name: Run Examples (extensions/ini) + # run: ./scripts/run_examples.sh extensions/ini - - name: Run Examples (external/json) - run: ./scripts/run_examples.sh external/json + - name: Run Examples (extensions/json) + run: ./scripts/run_examples.sh extensions/json - #- name: Run Examples (external/libressl) - # run: ./scripts/run_examples.sh external/libressl + #- name: Run Examples (extensions/libressl) + # run: ./scripts/run_examples.sh extensions/libressl - #- name: Run Examples (external/libsql) - # run: ./scripts/run_examples.sh external/libsql + #- name: Run Examples (extensions/libsql) + # run: ./scripts/run_examples.sh extensions/libsql - #- name: Run Examples (external/notcurses) - # run: ./scripts/run_examples.sh external/notcurses + #- name: Run Examples (extensions/notcurses) + # run: ./scripts/run_examples.sh extensions/notcurses - - name: Run Examples (external/openssl) - run: ./scripts/run_examples.sh external/openssl + - name: Run Examples (extensions/openssl) + run: ./scripts/run_examples.sh extensions/openssl - #- name: Run Examples (external/pcre2) - # run: ./scripts/run_examples.sh external/pcre2 + #- name: Run Examples (extensions/pcre2) + # run: ./scripts/run_examples.sh extensions/pcre2 - #- name: Run Examples (external/pcsc) - # run: ./scripts/run_examples.sh external/pcsc + #- name: Run Examples (extensions/pcsc) + # run: ./scripts/run_examples.sh extensions/pcsc - #- name: Run Examples (external/sqlite) - # run: ./scripts/run_examples.sh external/sqlite + #- name: Run Examples (extensions/sqlite) + # run: ./scripts/run_examples.sh extensions/sqlite - #- name: Run Examples (external/tcltk) - # run: ./scripts/run_examples.sh external/tcltk + #- name: Run Examples (extensions/tcltk) + # run: ./scripts/run_examples.sh extensions/tcltk - #- name: Run Examples (external/xml2) - # run: ./scripts/run_examples.sh external/xml2 + #- name: Run Examples (extensions/xml2) + # run: ./scripts/run_examples.sh extensions/xml2 - name: Run Examples (functions) run: ./scripts/run_examples.sh functions diff --git a/README.md b/README.md index aab79bf..55ab42d 100644 --- a/README.md +++ b/README.md @@ -89,14 +89,14 @@ See [./lib/](https://git.xw3.org/fun/fun/src/branch/main/lib) for what the stand ### Optional extensions (build-time selectable / only testing this on Linux actually): - [CGI](https://en.wikipedia.org/wiki/Common_Gateway_Interface) support builtin using [kcgi](https://kristaps.bsd.lv/kcgi/) (optional) ☐ -- [cURL (libcurl)](./docs/extensions/curl.md) (optional) ☑ -- [INI (iniparser)](./docs/extensions/ini.md) (optional) ☑ -- [JSON (json-c)](./docs/extensions/json.md) (optional) ☑ -- [PCRE2](./docs/extensions/pcre2.md) (optional) ☑ -- [PCSC (smart cards)](./docs/extensions/pcsc.md) (optional) ☑ -- [OpenSSL](./docs/extensions/openssl.md) (optional) ☑ -- [SQLite](./docs/extensions/sqlite.md) (optional) ☑ -- [XML (libxml2)](./docs/extensions/xml2.md) (optional) ☑ +- [cURL (libcurl)](./web/documentation/extensions/curl/curl.md) (optional) ☑ +- [INI (iniparser)](./web/documentation/extensions/ini/ini.md) (optional) ☑ +- [JSON (json-c)](./web/documentation/extensions/json/json.md) (optional) ☑ +- [PCRE2](./web/documentation/extensions/pcre2/pcre2.md) (optional) ☑ +- [PCSC (smart cards)](./web/documentation/extensions/pcsc/pcsc.md) (optional) ☑ +- [OpenSSL](./web/documentation/extensions/openssl/openssl.md) (optional) ☑ +- [SQLite](./web/documentation/extensions/sqlite/sqlite.md) (optional) ☑ +- [XML (libxml2)](./web/documentation/extensions/xml2/xml2.md) (optional) ☑ ☑ = Done (or basics implemented) / ☐ = Planned or in progress. diff --git a/examples/external/curl/curl_download.fun b/examples/extensions/curl/curl_download.fun similarity index 100% rename from examples/external/curl/curl_download.fun rename to examples/extensions/curl/curl_download.fun diff --git a/examples/external/curl/curl_get_json.fun b/examples/extensions/curl/curl_get_json.fun similarity index 100% rename from examples/external/curl/curl_get_json.fun rename to examples/extensions/curl/curl_get_json.fun diff --git a/examples/external/curl/curl_post.fun b/examples/extensions/curl/curl_post.fun similarity index 100% rename from examples/external/curl/curl_post.fun rename to examples/extensions/curl/curl_post.fun diff --git a/examples/external/ini/ini_class_demo.fun b/examples/extensions/ini/ini_class_demo.fun similarity index 100% rename from examples/external/ini/ini_class_demo.fun rename to examples/extensions/ini/ini_class_demo.fun diff --git a/examples/external/ini/ini_complex.fun b/examples/extensions/ini/ini_complex.fun similarity index 100% rename from examples/external/ini/ini_complex.fun rename to examples/extensions/ini/ini_complex.fun diff --git a/examples/external/ini/ini_demo.fun b/examples/extensions/ini/ini_demo.fun similarity index 100% rename from examples/external/ini/ini_demo.fun rename to examples/extensions/ini/ini_demo.fun diff --git a/examples/external/ini/ini_diag.fun b/examples/extensions/ini/ini_diag.fun similarity index 100% rename from examples/external/ini/ini_diag.fun rename to examples/extensions/ini/ini_diag.fun diff --git a/examples/external/ini/ini_subsections.fun b/examples/extensions/ini/ini_subsections.fun similarity index 100% rename from examples/external/ini/ini_subsections.fun rename to examples/extensions/ini/ini_subsections.fun diff --git a/examples/external/json/json_showcase.fun b/examples/extensions/json/json_showcase.fun similarity index 100% rename from examples/external/json/json_showcase.fun rename to examples/extensions/json/json_showcase.fun diff --git a/examples/external/openssl/openssl_md5.fun b/examples/extensions/openssl/openssl_md5.fun similarity index 100% rename from examples/external/openssl/openssl_md5.fun rename to examples/extensions/openssl/openssl_md5.fun diff --git a/examples/external/openssl/openssl_ripemd160.fun b/examples/extensions/openssl/openssl_ripemd160.fun similarity index 100% rename from examples/external/openssl/openssl_ripemd160.fun rename to examples/extensions/openssl/openssl_ripemd160.fun diff --git a/examples/external/openssl/openssl_sha256.fun b/examples/extensions/openssl/openssl_sha256.fun similarity index 100% rename from examples/external/openssl/openssl_sha256.fun rename to examples/extensions/openssl/openssl_sha256.fun diff --git a/examples/external/openssl/openssl_sha512.fun b/examples/extensions/openssl/openssl_sha512.fun similarity index 100% rename from examples/external/openssl/openssl_sha512.fun rename to examples/extensions/openssl/openssl_sha512.fun diff --git a/examples/external/pcre2/pcre2_demo.fun b/examples/extensions/pcre2/pcre2_demo.fun similarity index 100% rename from examples/external/pcre2/pcre2_demo.fun rename to examples/extensions/pcre2/pcre2_demo.fun diff --git a/examples/external/pcre2/pcre2_opcodes.fun b/examples/extensions/pcre2/pcre2_opcodes.fun similarity index 100% rename from examples/external/pcre2/pcre2_opcodes.fun rename to examples/extensions/pcre2/pcre2_opcodes.fun diff --git a/examples/external/pcre2/pcre2_showcase.fun b/examples/extensions/pcre2/pcre2_showcase.fun similarity index 100% rename from examples/external/pcre2/pcre2_showcase.fun rename to examples/extensions/pcre2/pcre2_showcase.fun diff --git a/examples/external/pcre2/pcsc2_example.fun b/examples/extensions/pcre2/pcsc2_example.fun similarity index 100% rename from examples/external/pcre2/pcsc2_example.fun rename to examples/extensions/pcre2/pcsc2_example.fun diff --git a/examples/external/pcsc/pcsc_demo.fun b/examples/extensions/pcsc/pcsc_demo.fun similarity index 100% rename from examples/external/pcsc/pcsc_demo.fun rename to examples/extensions/pcsc/pcsc_demo.fun diff --git a/examples/external/pcsc/pcsc_example.fun b/examples/extensions/pcsc/pcsc_example.fun similarity index 100% rename from examples/external/pcsc/pcsc_example.fun rename to examples/extensions/pcsc/pcsc_example.fun diff --git a/examples/external/sqlite/sqlited/README.md b/examples/extensions/sqlite/sqlited/README.md similarity index 78% rename from examples/external/sqlite/sqlited/README.md rename to examples/extensions/sqlite/sqlited/README.md index 4be87fc..cc5574f 100644 --- a/examples/external/sqlite/sqlited/README.md +++ b/examples/extensions/sqlite/sqlited/README.md @@ -19,13 +19,13 @@ Create a sample database Run the server - Set FUN_LIB_DIR to the repo’s lib directory or install Fun libs system-wide - Example (Debug profile path may differ): - FUN_LIB_DIR="$(pwd)/lib" ./build/fun ./examples/sqlited/server.fun 127.0.0.1 5555 + FUN_LIB_DIR="$(pwd)/lib" ./build/fun ./examples/extensions/sqlite/sqlited/server.fun 127.0.0.1 5555 Run the client - Query: - FUN_LIB_DIR="$(pwd)/lib" ./build/fun ./examples/sqlited/client.fun 127.0.0.1 5555 "SELECT id, title FROM tasks;" + FUN_LIB_DIR="$(pwd)/lib" ./build/fun ./examples/extensions/sqlite/sqlited/client.fun 127.0.0.1 5555 "SELECT id, title FROM tasks;" - Exec/DDL: - FUN_LIB_DIR="$(pwd)/lib" ./build/fun ./examples/sqlited/client.fun 127.0.0.1 5555 "UPDATE tasks SET done=1 WHERE id=1;" + FUN_LIB_DIR="$(pwd)/lib" ./build/fun ./examples/extensions/sqlite/sqlited/client.fun 127.0.0.1 5555 "UPDATE tasks SET done=1 WHERE id=1;" Protocol summary - Client sends one line with SQL ended by a newline (\n) diff --git a/examples/external/sqlite/sqlited/client.fun b/examples/extensions/sqlite/sqlited/client.fun similarity index 100% rename from examples/external/sqlite/sqlited/client.fun rename to examples/extensions/sqlite/sqlited/client.fun diff --git a/examples/external/sqlite/sqlited/protocol.md b/examples/extensions/sqlite/sqlited/protocol.md similarity index 100% rename from examples/external/sqlite/sqlited/protocol.md rename to examples/extensions/sqlite/sqlited/protocol.md diff --git a/examples/external/sqlite/sqlited/server.fun b/examples/extensions/sqlite/sqlited/server.fun similarity index 100% rename from examples/external/sqlite/sqlited/server.fun rename to examples/extensions/sqlite/sqlited/server.fun diff --git a/examples/external/xml2/xml_access_catalog.fun b/examples/extensions/xml2/xml_access_catalog.fun similarity index 100% rename from examples/external/xml2/xml_access_catalog.fun rename to examples/extensions/xml2/xml_access_catalog.fun diff --git a/examples/external/xml2/xml_access_employees.fun b/examples/extensions/xml2/xml_access_employees.fun similarity index 100% rename from examples/external/xml2/xml_access_employees.fun rename to examples/extensions/xml2/xml_access_employees.fun diff --git a/examples/external/xml2/xml_access_ns.fun b/examples/extensions/xml2/xml_access_ns.fun similarity index 100% rename from examples/external/xml2/xml_access_ns.fun rename to examples/extensions/xml2/xml_access_ns.fun diff --git a/examples/external/xml2/xml_class_example.fun b/examples/extensions/xml2/xml_class_example.fun similarity index 100% rename from examples/external/xml2/xml_class_example.fun rename to examples/extensions/xml2/xml_class_example.fun diff --git a/examples/external/xml2/xml_minimal.fun b/examples/extensions/xml2/xml_minimal.fun similarity index 100% rename from examples/external/xml2/xml_minimal.fun rename to examples/extensions/xml2/xml_minimal.fun diff --git a/web/documentation/extensions/extensions.md b/web/documentation/extensions/extensions.md index f08e2d1..39be499 100644 --- a/web/documentation/extensions/extensions.md +++ b/web/documentation/extensions/extensions.md @@ -18,7 +18,6 @@ tags: - examples - extension - extensions -- extensions - integrations - optional - required diff --git a/web/documentation/handbook/handbook.md b/web/documentation/handbook/handbook.md index 986a067..44bfed2 100644 --- a/web/documentation/handbook/handbook.md +++ b/web/documentation/handbook/handbook.md @@ -408,7 +408,7 @@ UnixClient: - connect(path), is_connected(), send(data), recv(maxlen), close() -Examples: tcp_http_get.fun, tcp_http_get_class.fun, unix_socket_echo.fun, extra/tcp_echo_server_class.fun +Examples: tcp_http_get.fun, tcp_http_get_class.fun, unix_socket_echo.fun, blocking/tcp_echo_server_class.fun ### io.thread @@ -711,13 +711,13 @@ Highlights (not exhaustive): - if_else_test.fun — branching - include_lib.fun, include_local.fun, include_namespace.fun — includes and namespacing - interactive/input_example.fun — console input -- extra/json_showcase.fun — JSON usage -- extra/curl_get_json.fun, extra/curl_post.fun, extra/curl_download.fun — HTTP via CURL +- extensions/json_showcase.fun — JSON usage +- extensions/curl_get_json.fun, extensions/curl_post.fun, extensions/curl_download.fun — HTTP via CURL - loops_break_continue.fun, nested_loops.fun, while_test.fun — loops - crypto/md5_demo.fun, crypto/sha1_demo.fun, crypto/sha256_demo.fun, crypto/sha256_str_demo.fun, crypto/sha384_example.fun, crypto/sha512_demo.fun, crypto/sha512_str_demo.fun — hashing - objects_basic.fun, objects_more.fun — map/object patterns - os_env.fun — environment variables -- extra/pcsc_example.fun — smart card demo +- extensions/pcsc_example.fun — smart card demo - process_example.fun — running external commands - regex_demo.fun, regex_procedural.fun — regex usage - stdlib_showcase.fun — tour through stdlib @@ -729,7 +729,7 @@ Highlights (not exhaustive): - type_safety.fun, type_safety_fails.fun — type safety - types_integers.fun, signed_ints.fun, uint_types.fun — integers - unix_socket_echo.fun — UNIX domain sockets -- extra/sqlite_example.fun — SQLite usage +- extensions/sqlite_example.fun — SQLite usage Notes: