RSSAmplifier

Blog

Optical Aberration

Used to make video games, can't be arsed anymore.

opticalaberration.comRSS feed ↗10 posts

Latest posts

The complexity of writing responses

It's been a while since I posted anything to my blog. I thought I would write this article though because it has been an issue that has had a lot of discussion among key members of the swift on server community.We recently released version 2.0 of Hummingbird the swift server framework. During its development the thing that has probably taken the most of my head space is how to return an HTTP…

VS Code Swift extension lesser known features

For most of this year I have been working on the Swift extension for Visual Studio Code. The work is part of the Swift Server Workgroup push to improve the Swift development experience outside of the Apple eco-system. In July I posted an article on the swift.org website giving an overview of the extension and what functionality it provides. Given this was a general overview a number of the more…

Building a HTTP Proxy with Swift

In this article I am going to cover how to build a HTTP Proxy server using Swift. We will use the Hummingbird HTTP server framework as the basis for the server and use the Swift server AsyncHTTPClient HTTP client to forward on requests to the target service.A proxy server is a service that sits between a client and another service. It forwards messages from the client onto the…

A template for building Hummingbird applications

The Hummingbird server framework is designed to be flexible. It imposes as little structure as possible on how you build your application, but sometimes you need some structure. Do you really want to build all your application setup boilerplate every time you create a new app? To avoid this I have written a hummingbird project template which can be your starting point for your next app.GitHub has…

Hummingbird and Swift concurrency

Swift 5.5 has been released. This new release includes a series of new concurrency features including, async/await, structured concurrency and actors. Probably one of the most exciting series of additions to Swift in a long time (and this is from a language with new features appearing, what seems like, every other week).The recently released version of Hummingbird ( v0.13.0 ) includes new APIs…

JMESPath

JMESPath is a query language for JSON. WIth it you can script searching large JSON datasets and transform the results.A search can be as simple as a single field name. result would return the object attached to the result field at the top level of a JSON file. This can be specialized to return an object inside result by added a dot and then another field name eg result.object .Queries can index…

Hummingbird Update

Almost 8 weeks back I published a post announcing the release of my Swift based http application framework hummingbird . This post is to update everyone on all the new stuff that has been added since that first post.The web application layer has had a number of changes. Much of these have been API changes as I continue to refine the interfaces. I apologize to anymore who might have been using the…

Going Serverless with Hummingbird

Along with Hummingbird, my web application framework, comes HummingbirdLambda . This allows you to take your Hummingbird application and run it on an AWS Lambda with API Gateway as an interface.As long as all the services your application uses are accessible from AWS Lambda and your application doesn't have any internal persistent state moving to Lambda should be fairly easy. You should be able to…

Hummingbird: A Swift HTTP server framework

Hey, I wrote a new SwiftNIO based HTTP server framework. What'd you do that for Adam? Well I guess I like making tech, but also I thought there was a gap in the market for something a little more slimline than the "market leader". Yes you guessed it Vapor. I don't think anyone can really consider building a Swift server framework without trying to differentiate themselves from Vapor.Welcome to…

Chat client using MQTT NIO

I recently wrote a MQTT client with Swift NIO. You can find it here . This article covers how to create a simple chat client using said library.For those who don't know MQTT (Message Queuing Telemetry Transport) is a lightweight publish/subscribe messaging protocol used extensively in IoT (Internet of Things) technologies. The MQTT protocol defines two types of network entities: a message broker…