/cobweb

COBOL to WebAssembly compiler

Primary LanguageCOBOLMIT LicenseMIT

CobWeb

See announcement Cloudflare Workers Now Support COBOL.

Uses GnuCOBOL 2.2.

Usage with Docker

To avoid setting up the compiler environment locally, you can use a pre-built Docker image: xtuc/cobweb:

docker run \
  -e EM_OUT \
  -e EM_ARGS \
  -v /tmp/cobol-worker:/root/.emscripten_cache/ \
  -v $PWD:/worker \
  -v $PWD/build:/build \
  xtuc/cobweb \
  /worker/src/worker.cob

Usage

Compile dependecies:

make all

Compile COBOL to WebAssembly:

./cobweb.sh source.cob

program-id

The program-id should be worker otherwise the program will fail to compile.

Worker API

Set the HTTP status code:

CALL "set_http_status" USING "400".

Set the response body to a string:

CALL "set_http_body" USING "something".

Append a string to the response body:

CALL "append_http_body" USING "something".

Get HTTP form values:

WORKING-STORAGE SECTION.
    01 THE-VALUE PIC S9(9) BINARY.
PROCEDURE DIVISION.
    CALL "get_http_form" USING "key" RETURNING THE-VALUE.

Example

See the example.