Note: This is a work in progress. ποΈπ§
Project Status: π² Unstable, alpha-ish quality.
You need to be on at least a recent RC of ReScript v11.
npm i @tsirysndr/rescript-deno @rescript/coreInclude 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.
A Simple HTTP Server:
Deno.serveWithOptions({port: 8007}, ~handler=req => {
Response.new(String("Hello, world!"))
})->ignoreMake 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.
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
Contributions, issues and feature requests are welcome! See CONTRIBUTING.md for more info.