Releases: enmerk4r/Swiftlet
Releases · enmerk4r/Swiftlet
Rhino 8, MCP, WebSockets, OAuth, XML and more
New Components
MCP (Model Context Protocol)
- Define Tool Parameter
- Define Tool
- MCP Server
- Deconstruct Tool Call
- MCP Tool Response
- SwiftletBridge executable (stdio-to-HTTP bridge for Claude Desktop and other MCP hosts)
HTTP Server
- Server Input
- Server Response
- Deconstruct Request
- Deconstruct Body
WebSocket
- WebSocket Client
- WebSocket Server
- WebSocket Send
OAuth 2.0
- OAuth Authorize (with PKCE)
- OAuth Token (with refresh support)
UDP
- UDP Listener
- UDP Stream
XML
- Parse XML
- Get XML Attribute Value
- Get XML Attributes
- Get XML Child Nodes
- Get XML Elements By Tag
- Get XML Elements By XPath
- Get XML Inner Text
- Stringify XML Node
- Create XML Element
Large File Handling
- Download File (streaming)
- Upload File (streaming)
- Upload File Multipart (streaming)
Request Building
- Create Form URL Encoded Body
- Create Multipart Field (Text)
- Create Multipart Field (Bytes)
- Create Multipart Form Body
Improvements
- Rhino 8 support (.NET 7)
- Shared HTTP client for better performance
- Bitmap compatibility with Bitmap+ and ShapeDiver
- Null JSON token output by default from the Create JSON Value component
- JToken preview rendering in Grasshopper
Deprecated
- Socket Listener → use WebSocket Client/Server
- Create Multipart Form Body (Named/Unnamed) → use Create Multipart Field + Create Multipart Form Body
QR codes, Bitmaps and Multipart Form Data
New components:
- URLencode
- Hex to RGB
- RGB to Hex
- Byte Array to Bitmap
- Bitmap to Byte Array
- Bitmap to Mesh
- QR code generator
- Throttle (Sleep)
- Deconstruct Headers
- Deconstruct Query Params
- GUID generator
- Base64 encode for byte arrays
- Base64 decode for byte arrays
- Create MultipartForm Body Named
- Create MultipartForm Body Unnamed
Bugfixes:
- Fixed the bug with the
Content-Typeheader not being properly propagated to the request headers - Fixed the bug with request components not working when multithreading is turned off
Quality of Life improvements
- Added components for constructing / deconstructing URLs (including query params)
- Added utilities for reading CSV strings
- Added components for converting byte arrays to lists of
intand vice versa - Added a Replace Empty Branches component
- Exposed Byte Array param
- Improved error messages
IP Blacklisting
Introduced IP blacklisting functionality that prevents Swiftlet from making calls to IP ranges specified in an optional BLOCKED_SUBNETS environment variable. This is done to make sure that Swiftlet doesn't create a security vulnerability when run in a cloud compute context.
Multithreading and Listeners
- All request components are now multithreaded
- New HTTP Request component that supports all HTTP methods
- New HTTP Listener and Socket Listener components
- Base64 encoding and decoding utilities
- Support for GZIP compression
- Exposed byte arrays as a Grasshopper type
- Improved stability for JSON parsing components
HTML Parsing
- A full set of HTML parsing components
- Create Custom Text Body Param
- Create Byte Array Body Param
- Components for saving plaintext, CSV, and binary files to disk
Open Source, bugfixes
Added examples and documentation for making Swiftlet open-source. Fixed bugs with JSON body creation from JTokens and stringifying JSON Arrays
Construct JSON
Added components for constructing JSON objects
JSON in R7
Adding Newtonsoft.Json dll to the R7 version
Serialization Hotfix
Fixed Text Body component serialization