The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Nozabi Modula
5 years ago
Compiles w/ Swift 5 snapshots.
Backwardly Not
5 years ago
This release adds changes to please current builds of Swift 4.2, e.g. as delivered in Xcode 10 beta 4.
There is only one major change in the API - socket structs like `sockaddr_in` or `addr_in` do not carry a custom initialiser anymore. That is a:
let a = sockaddr_in()
Is *not* properly initialising the address anymore, instead it just returns a 0-cleared value. Instead, use one of the other convenience initialisers we provide or `make`, like so:
let a = sockaddr_in.make()
This affected no user code in Noze.io itself, so you probably won't hit it either.
Leaky Leakage
6 years ago
There was a long time bug in the routing methods (there are 3 ...) which was leaking the `next` closure (because that was self-referencing and in not all cases cleaning up properly).
That has been fixed and should be excellent now.
Fantastic Four
6 years ago
Noze.io FF adds support for Xcode 9 and Swift 4.0.
Noze.io now compiles using both, Swift 3 (3.0, 3.1 and 3.2), as well as Swift 4. The Xcode project still defaults to Swift 3 to support older Xcode installation. Note that Xcode 9 can also compile Swift 3 (known as Swift 3.2, which can be mixed w/ Swift 4).
On the SPM side Noze.io is compiled as Swift 4 when available, otherwise as Swift 3.
Two minor enhancements:
- add `QS` module from [ExExpress](https://github.com/modswift/ExExpress)
- add `bodyParser.Options.extended` (aka use qs instead of query_string to parse query parameters)
Big Brother is Watching You
6 years ago
Added the Swiftmon/S example, a source rebuild monitor. And associated improvements to Noze.io, like in the `fs.watch` and `child_process.spawn` APIs.
Changes since 0.5.7:
- modules:
- events:
- bugfix in 'once' logging (drop once listeners before emitting)
- fs:
- watch
- support for recursive and directory watchers
- bugfixes
- child_process:
- API changes to kill (default value, return value, etc)
- samples:
- Swiftmon/S - a source rebuild monitor
- Add TCP_NODELAY option for sockets
- Xcode 9 upgrade checks
- Swift 3.2
- drop @_specialize in CryptoSwift fork
- stat hack (stat uses lstat)
- types use .self
- no more (Void)->Void
- redundant conformance
- args after varargs need a name
- Swift 3.1 compile fixes
Lost in Transmission
7 years ago
Annoyed that your TCP packets always arrive in an orderly fashion? Want to bring more risk to your socket communication? Noze.io has you covered.
Release 0.5.7 adds the new [dgram](https://github.com/NozeIO/Noze.io/tree/master/Sources/dgram) module contributed by @lichtblau. Example UDP echo daemon:
```swift
sock = dgram.createSocket()
sock
.onMessage { (msg, from) in
sock.send(msg, to: from) // echo back
}
.bind(1337)
```
Also: fixes for new warnings emitted by Swift 3.1, also contributed by @lichtblau.
Small bugfix / upgrade release:
- Fixed a bug that happened when the middleware stack was empty.
- Use Swift 3.0.2 in Travis (Xcode 8.2 on macOS)
- Allow `MiddlewareObject`s to be directly used in `app.get()` etc.
Tiny bugfix release. A thing is that the default listen queue size got bumped from 5 to 512.
- fix source width to be max 80 columns
- bump listen backlog to 512
- typos
- fix makefile build
- a few more docs
- drop some Swift 2 legacy
- make process.platform public
Callyback Backpipe
7 years ago
Minor bugfix release.
`streams` module:
- Bugfix: Fix piping of empty `Readable`'s. When a callback based `Readable`
w/o an actual callback (manual push) got piped, it was issuing an EOF push.
This would close the pipe.
Instead just ignore the read request and wait for the user to push something
to the `Readable` (content or EOF).
`net` module:
- fix bug in capturing `errno`
tests:
- fix setup&compilation of Linux tests
- fix Freddy tests for Swift 3.0
- new pipe tests for callback based streams
Basic Nozes with an End - Part ||
7 years ago
- crasher in end handler
- some API cleanup