Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cloudflare/cobweb

COBOL to WebAssembly compiler
https://github.com/cloudflare/cobweb

Last synced: 14 days ago
JSON representation

COBOL to WebAssembly compiler

Awesome Lists containing this project

README

        

# CobWeb

See announcement [Cloudflare Workers Now Support COBOL](https://blog.cloudflare.com/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`:

```sh
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:
```sh
make all
```

Compile COBOL to WebAssembly:
```sh
./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:
```cobol
CALL "set_http_status" USING "400".
```

Set the response body to a string:
```cobol
CALL "set_http_body" USING "something".
```

Append a string to the response body:
```cobol
CALL "append_http_body" USING "something".
```

Get HTTP form values:
```cobol
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](./example).