Skip to content

Releases: imazen/imageflow

v1.0.0-rc1

01 Sep 05:44
Compare
Choose a tag to compare
v1.0.0-rc1 Pre-release
Pre-release

Hi folks! This release marks stability in the Imageflow C API for in-process use.

Breaking changes to the JSON API with 1.0 RTM are also unlikely, but possible. Since the November release of the JSON API and the December release of imageflow_server, fewer than five of you have provided feedback, and none of it was about the JSON API.

I'm a strong believer in user-feedback-driven design, so I hope that more of you will download 1.0.0-rc1 and alert me to any rough edges. As a solo developer, some blind spots are inevitable.

As before, imageflow_tool examples --generate is the best way to get started with the JSON API.

Nearly all planned features are present. Those missing (watermarking, whitespace detection, and animated gif encoding) will be introduced in backwards-compatible 1.x releases soon. I expect to introduce a lot more node types to the JSON API after I collect more feedback and use cases.

Source code for C# and Ruby bindings can be found in /bindings/ruby/ and /bindings/dn/ respectively. These bindings haven't been packaged yet, but are tiny (300 and 600 lines of code) enough to easily embed as source files in your program. Ensure that imageflow.dll or libimageflow.so/.dylib is in your load path.

Rust's HTTP ecosystem has been a bit of a curveball. It wasn't in bad shape last year - kinda pre-release-y, with a inconvenient bug or two. I expected a linear continuation of improvement over the next months, but it instead took a dive in Futures and Async. It's a great long-term goal - and when it's more mature I hope to make Imageflow fully async. But the stack shifted sideways towards new directions rather than upward to production-perfect. So, for now, you'll want to put imageflow_server behind a reverse proxy like NGINX or IIS/Application Request Routing (both of which offer disk caching).

I've been running imageflow_server in demo mode as an image proxy for the last six months. Even with caching disabled it's pretty reliable and quick.

All imageflow APIs allow you to use querystring commands just like ImageResizer 4. Imageflow has feature parity for 99% of users.

I've continued to reduce the attack surface for Imageflow. Nearly every complex part has been ported from C to Rust. giflib has been replaced by a Rust codec, leaving just libpng, LittleCMS, and libjpeg-turbo 1.5.1 (which was recently audited). OpenSSL is only used on Linux - on Windows and OS X, operating system APIs are used instead.

v0.1.6

21 Aug 22:50
Compare
Choose a tag to compare
v0.1.6 Pre-release
Pre-release
Invalidate estimates when reconfiguring decoder during command string…

v0.1.5

20 Aug 07:55
Compare
Choose a tag to compare
v0.1.5 Pre-release
Pre-release
Fix gif encoder to handle stride padding

v0.1.4 - Performance improvements

06 Aug 19:00
Compare
Choose a tag to compare
Pre-release

Provides dramatic performance benefit when downscaling large images.

  • Added spacial gamma-correct IDCT downsampling to RIAPI (ImageResizer v4 querystring API).
  • Added &decoder.min_precise_scaling_ratio (default is 2.1)

v0.1.3 - 2 bugfixes

05 Aug 01:36
Compare
Choose a tag to compare
v0.1.3 - 2 bugfixes Pre-release
Pre-release
  • Fix CropOrAspect constraint strategy; prevent canvas being 1x1px too small.
  • Add constraint step fill_crop() to address purely theoretical double rounding.
  • Handle :: escapes properly; Fixes #134

v0.1.2

02 Aug 21:57
Compare
Choose a tag to compare
v0.1.2 Pre-release
Pre-release
  • Add auto-white-balance (sRGB histogram area algorithm)
  • Add sRGB color matrix support (and fix underlying C code)
  • Fix f.sharpen
  • Add s.alpha, s.contrast, s.saturation, s.brightness, s.sepa, s.grayscale
  • Switch to rust 2017-08-01 for OS X to avoid compiler bug

v0.1.0

13 Jun 07:48
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release
  • Upgrade Rust to 2017-06-12
  • Add GIF read support for both still and animated gifs.
  • Add GIF write support (single frame)
  • Port I/O and Codec system to Rust so that both Rust and C codecs can be supported
  • Cleanup build scripts and IntelliJ files
  • Upgrade all crates to latest versions

v0.0.21

11 Mar 08:30
Compare
Choose a tag to compare
v0.0.21 Pre-release
Pre-release
  • Add ImageResizer 4 query-string compatibility to imageflow_tool.
  • Upgrade to newer version of Rust
  • Refactor the build system and CI; speed it up 3x
  • Improve artifact size and binary quality
  • Allow imageflow_server to serve external traffic (non-localhost).
  • Fix many, many bugs
  • Added demo server managed by Docker Cloud on Digital Ocean: https://demo.imageflow.io/proxied_demo/index.html (runs the most recent commit to master).

I have received no feedback on the API, JSON schema, or FFI interface since January, and almost none overall. Correspondingly, API refinement may have to be deferred until version 2.

v0.0.17

13 Feb 21:43
Compare
Choose a tag to compare
v0.0.17 Pre-release
Pre-release

Updated dependencies

Fix imageflow_server demo

25 Jan 02:00
Compare
Choose a tag to compare
Pre-release

This fixes a bug in the previous release, and handles http->https redirects correctly when proxying content from Github for the imageflow_server demo.

This also introduces preview support for serving HTTPS 1.1 with imageflow_server via --certificate