Skip to content

Latest commit

 

History

History
162 lines (138 loc) · 3.59 KB

README.md

File metadata and controls

162 lines (138 loc) · 3.59 KB

rescript-deno 🦕

Use Deno with ReScript.

Note: This is a work in progress. 🏗️🚧

Project Status: 🐲 Unstable, alpha-ish quality.

🚚 Install

You need to be on at least a recent RC of ReScript v11.

npm i @tsirysndr/rescript-deno @rescript/core

Include them in your rescript.json:

{
  "bs-dependencies": ["@rescript/core", "@tsirysndr/rescript-deno"]
}

rescript-deno is namespaced, so you'll find all modules listed under the main module TsirysndrRescriptDeno.

You're strongly encouraged to open TsirysndrRescriptDeno globally, to get the best possible developer experience. You do that by adding this to your rescript.json:

{
  "bsc-flags": [
    "-open TsirysndrRescriptDeno",
    "-open TsirysndrRescriptDeno.Globals",
    "-open RescriptCore"
  ]
}

This might be a matter of taste, but I recommend opening it to get the best experience.

This will make all of Deno available to you without needing to dip into the TsirysndrRescriptDeno module explicitly.

🧑‍🔬 Examples

A Simple HTTP Server:

Deno.serveWithOptions({port: 8007}, ~handler=req => {
  Response.new(String("Hello, world!"))
})->ignore

Make a request to a server:

let result = await fetch(String("https://rickandmortyapi.com/api/character"))
Console.log(await result->Response.json)

See playground directory in this repo for more examples.

📑 Current Coverage

There's still a good amount of bindings missing. Here's what's currently available:

  • Broadcast Channel
    • BroadcastChannel
  • Cloud
    • Deno KV
    • Deno Cron
    • Deno Queue
  • Cache API
    • Cache
    • CacheStorage
    • caches
  • Compression Streams API
    • CompressionStream
    • DecompressionStream
  • DOM APIs
  • DOM Events
  • Encoding API
    • TextDecoder
    • TextEncoder
    • atob
    • btoa
  • Errors
  • ES Modules
  • Fetch API
    • Body
    • EventSource
    • FormData
    • Headers
    • Request
    • Response
    • ResponseInit
    • BodyInit
    • fetch
  • File System
  • HTTP Server
    • Deno.serve
    • Deno.serveHttp
  • I/O
  • Network
    • Deno.connect
    • Deno.connectTls
    • Deno.listen
    • Deno.listenTls
    • Deno.networkInterfaces
    • Deno.resolveDns
    • Deno.shutdown
    • Deno.startTls
  • Observability
  • Performance
  • Permissions
  • Runtime Environment
    • Deno.version
    • Deno.pid
    • Deno.ppid
    • Deno.noColor
    • Deno.args
    • Deno.mainModule
    • Deno.build
    • Deno.env
    • Deno.exit
  • Scheduling
  • Streams API
  • Sub Process
    • Deno.ChildProcess
    • Deno.Command
    • Deno.kill
  • Testing
    • Deno.test
    • Deno.bench
  • Timers
  • Typed Arrays
  • Web APIs
  • Web Crypto API
  • Web File API
    • Blob
    • File
    • FileReader
  • Web Sockets
    • CloseEvent
    • WebSocket
  • Web Storage API
    • Storage
    • localStorage
    • sessionStorage
  • Web Workers
    • Worker
  • WebAssembly
  • WebGPU

🤝 Contributing

Contributions, issues and feature requests are welcome! See CONTRIBUTING.md for more info.