blueboat
blueboat copied to clipboard
Tracking issue for JavaScript API
The entire TypeScript API definition is published as the blueboat-types package. This issue tracks the API surface on a high level:
Tier 1
Tier 1 APIs are stable interfaces exposed by Blueboat. Incompatible changes require a semver major.
- Standard JavaScript features supported by V8
- A subset of the Web platform API
- [x]
fetch(),RequestandResponseobjects - [x]
TextEncoder,TextDecoder - [ ] Timers
- [x]
setTimeout,clearTimeout - [ ]
setInterval,clearInterval
- [x]
- [x]
URL,URLSearchParams - [x]
crypto.getRandomValues - [x]
crypto.randomUUID - [ ]
crypto.subtle(NativeCryptocan be used instead) - [ ]
console- [x]
console.log() - [x]
console.warn() - [x]
console.error()
- [x]
- [x]
- Request router
- [x] The
Routerobject
- [x] The
- Cryptography extensions
- [x] Ed25519 and X25519:
NativeCrypto.Ed25519,NativeCrypto.X25519 - [x] JWT signing and verification:
NativeCrypto.JWT - [x] Hashing:
NativeCrypto.digest - [x] Constant time comparison:
NativeCrypto.constantTimeEq - [ ] AEAD:
NativeCrypto.AEAD- [x] AES128-GCM-SIV:
NativeCrypto.AEAD.{aes128GcmSivEncrypt,aes128GcmSivDecrypt}
- [x] AES128-GCM-SIV:
- [ ] HMAC:
NativeCrypto.HMAC- [x] HMAC-SHA256:
NativeCrypto.HMAC.hmacSha256
- [x] HMAC-SHA256:
- [x] Ed25519 and X25519:
- Template API
- [x] Tera template rendering:
Template.render()
- [x] Tera template rendering:
- Encoding and decoding
- [x]
Codec.hexencode(),Codec.hexdecode() - [x]
Codec.b64encode(),Codec.b64decode()
- [x]
- Embedded datasets
- [x] MIME type guessing:
Dataset.Mime.guessByExt()
- [x] MIME type guessing:
- Text utilities
- [x] YAML serialization and deserialization:
TextUtil.Yaml.parse(),TextUtil.Yaml.stringify() - [x] Markdown rendering:
TextUtil.Markdown.renderToHtml()
- [x] YAML serialization and deserialization:
- Data compression
- [ ] Zstd
- [x] Block compression:
Compress.Zstd.blockCompress - [x] Block decompression:
Compress.Zstd.blockDecompress
- [x] Block compression:
- [ ] Zstd
Tier 2
Tier 2 APIs are experimental - incompatible changes can be made within a major version.
- Graphics API
- [x] Canvas (
Graphics.Canvas) - [x] Layout constraint solver based on Z3 (
Graphics.Layout)
- [x] Canvas (
- Background tasks
- [x]
Background.atMostOnce() - [ ]
Background.atLeastOnce() - [ ]
Background.delayed()
- [x]
- Data validation
- [x] JSON Type Definition validation:
Validation.JTD
- [x] JSON Type Definition validation:
- Native API to external services
- [x] MySQL client
- [x] Apple Push Notification Service (APNS) client
- [ ] AWS
- [x] v4 request signing:
ExternalService.AWS.sign - [x] Presigned URL:
ExternalService.AWS.getPresignedUrl
- [x] v4 request signing:
- [ ] GitHub
- [x] octokit.js exported at
ExternalService.GitHub
- [x] octokit.js exported at
- DOM API
- [x] XML:
TextUtil.DOM.HTML - [x] HTML:
TextUtil.DOM.XML
- [x] XML:
- Distributed system primitives
- Key-value store
- [x] KV.Namespace
- Message queue
- [x]
App.pubsub - [x] Client-side API:
/_blueboat/events
- [x]
- Key-value store
- Encoding and decoding
- [x]
multipart/form-dataparser:Codec.Multipart.decode
- [x]