-
Notifications
You must be signed in to change notification settings - Fork 55
Tracking issue for JavaScript API #65
Copy link
Copy link
Open
Labels
Description
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
-
fetch(),RequestandResponseobjects -
TextEncoder,TextDecoder - Timers
-
setTimeout,clearTimeout -
setInterval,clearInterval
-
-
URL,URLSearchParams -
crypto.getRandomValues -
crypto.randomUUID -
crypto.subtle(NativeCryptocan be used instead) -
console-
console.log() -
console.warn() -
console.error()
-
-
- Request router
- The
Routerobject
- The
- Cryptography extensions
- Ed25519 and X25519:
NativeCrypto.Ed25519,NativeCrypto.X25519 - JWT signing and verification:
NativeCrypto.JWT - Hashing:
NativeCrypto.digest - Constant time comparison:
NativeCrypto.constantTimeEq - AEAD:
NativeCrypto.AEAD- AES128-GCM-SIV:
NativeCrypto.AEAD.{aes128GcmSivEncrypt,aes128GcmSivDecrypt}
- AES128-GCM-SIV:
- HMAC:
NativeCrypto.HMAC- HMAC-SHA256:
NativeCrypto.HMAC.hmacSha256
- HMAC-SHA256:
- Ed25519 and X25519:
- Template API
- Tera template rendering:
Template.render()
- Tera template rendering:
- Encoding and decoding
-
Codec.hexencode(),Codec.hexdecode() -
Codec.b64encode(),Codec.b64decode()
-
- Embedded datasets
- MIME type guessing:
Dataset.Mime.guessByExt()
- MIME type guessing:
- Text utilities
- YAML serialization and deserialization:
TextUtil.Yaml.parse(),TextUtil.Yaml.stringify() - Markdown rendering:
TextUtil.Markdown.renderToHtml()
- YAML serialization and deserialization:
- Data compression
- Zstd
- Block compression:
Compress.Zstd.blockCompress - Block decompression:
Compress.Zstd.blockDecompress
- Block compression:
- Zstd
Tier 2
Tier 2 APIs are experimental - incompatible changes can be made within a major version.
- Graphics API
- Canvas (
Graphics.Canvas) - Layout constraint solver based on Z3 (
Graphics.Layout)
- Canvas (
- Background tasks
-
Background.atMostOnce() -
Background.atLeastOnce() -
Background.delayed()
-
- Data validation
- JSON Type Definition validation:
Validation.JTD
- JSON Type Definition validation:
- Native API to external services
- MySQL client
- Apple Push Notification Service (APNS) client
- AWS
- v4 request signing:
ExternalService.AWS.sign - Presigned URL:
ExternalService.AWS.getPresignedUrl
- v4 request signing:
- GitHub
- octokit.js exported at
ExternalService.GitHub
- octokit.js exported at
- DOM API
- XML:
TextUtil.DOM.HTML - HTML:
TextUtil.DOM.XML
- XML:
- Distributed system primitives
- Key-value store
- KV.Namespace
- Message queue
-
App.pubsub - Client-side API:
/_blueboat/events
-
- Key-value store
- Encoding and decoding
-
multipart/form-dataparser:Codec.Multipart.decode
-
Reactions are currently unavailable