v0.2.0
Features
- instance: Add color channel adjustments (Vincent Tavernier)
- api: Implement parts of the JSON API (Vincent Tavernier)
- api: JSON API (Vincent Tavernier)
- api: Add Boblight server (Vincent Tavernier)
- Add server name in initialization message (Vincent Tavernier)
- api: Return priorities of current instance in JSON API (Vincent Tavernier)
- config: Allow loading config from JSON file (Vincent Tavernier)
- config: Add classic led config generator (Vincent Tavernier)
- ws2812spi: Implement invert (Vincent Tavernier)
- ws2812spi: Implement latching (Vincent Tavernier)
- Add event hooks (Vincent Tavernier)
- Add path resolver (Vincent Tavernier)
- web: Add web server (Vincent Tavernier)
- web: Implement JSON RPC endpoint (Vincent Tavernier)
- paths: Introduce $SYSTEM and fix $ROOT behavior (Vincent Tavernier)
- rt: Add --threads option (Vincent Tavernier)
- dummy: Add ANSI RGB output mode (Vincent Tavernier)
- color: Add RGB color temperature adjustment (Vincent Tavernier)
- effects: Implement basic effect support (Vincent Tavernier)
Bug Fixes
- rt: Always use the mt runtime to allow blocking tasks (Vincent Tavernier)
- Fix warnings (Vincent Tavernier)
- Fix AuthorizeCommand casing (Vincent Tavernier)
- Assume linear Srgb as input (Vincent Tavernier)
- Fix some config serialization issues (Vincent Tavernier)
- api: Fix sysinfo kernelVersion (Vincent Tavernier)
- Introduce ServerHandle type, stop listening on abort (Vincent Tavernier)
- Fix usage of hardware led count vs. instance led count (Vincent Tavernier)
- Allow parts of an instance initialization to fail (Vincent Tavernier)
- Obey Boblight server enable flag (Vincent Tavernier)
- Unregister instances when they are dropped (Vincent Tavernier)
- Fix PriorityInfo duration panics (Vincent Tavernier)
- Cleanup LED data handling in instance core (Vincent Tavernier)
- Allow re-register in Flatbuffers server (Vincent Tavernier)
- config: Fix some config serialization issues (Vincent Tavernier)
- Handle instance handle errors, return adjustments in ServerInfo (Vincent Tavernier)
- Remove (broken) reducer area calculation (Vincent Tavernier)
- Generate meta entry on load (Vincent Tavernier)
- Add default user creation (Vincent Tavernier)
- Fix warning (Vincent Tavernier)
- Fix imports (Vincent Tavernier)
- Fix compilation errors (Vincent Tavernier)
- web: Use session id instead of remote_addr (Vincent Tavernier)
- web: Fix invalid empty document root (Vincent Tavernier)
- api: Flush after sending replies (Vincent Tavernier)
- api: Fix PriorityInfo serialization (Vincent Tavernier)
- web: Generate a session id before registering an input source (Vincent Tavernier)
- api: Clear priority on disconnect (Vincent Tavernier)
- web: Limit number of concurrent sessions in config (Vincent Tavernier)
- instance: Only deactivate after smoothing has settled (Vincent Tavernier)
- config: Fix error formatting (Vincent Tavernier)
- config: Enable deny_unknown_fields (Vincent Tavernier)
- config: Fix some field names (Vincent Tavernier)
- config: Flatten global config for serialization (Vincent Tavernier)
- config: Use salt hex as-is (Vincent Tavernier)
- color: Fix brightness components computation (Vincent Tavernier)
- color: Fix transform filter mappings (Vincent Tavernier)
- color: Fix RgbTransform sum_brightness_low (Vincent Tavernier)
- image: Fix reducer color scale (Vincent Tavernier)
- paths: Fix path resolution in test targets (Vincent Tavernier)
- api: Fix panic on effect answer from multiple instances (Vincent Tavernier)
- api: Only send effect to current instance for JSON API (Vincent Tavernier)
- config: Fix ColorAdjustement serialization (Vincent Tavernier)
- ws2812: Try opening device multiple times (Vincent Tavernier)
Documentation
- Add CLI documentation (Vincent Tavernier)
- Add default config to README (Vincent Tavernier)
- Update README (Vincent Tavernier)
Code Refactoring
- Switch from diesel to sqlx (Vincent Tavernier)
- Switch from openssl to rustls (Vincent Tavernier)
- Add config accessor on Global (Vincent Tavernier)
- api: Move API handling to api module (Vincent Tavernier)
- Use an enum for input source names (Vincent Tavernier)
- Remove some pub(super) (Vincent Tavernier)
- api: Introduce api::json::ClientConnection (Vincent Tavernier)
- Move PriorityMuxer to Instance (Vincent Tavernier)
- Remove utils module (Vincent Tavernier)
- api: Simplify JSON codec (Vincent Tavernier)
- api: Simplify Protobuf codec (Vincent Tavernier)
- instance: Remove unused InstanceError::UnsupportedCommand (Vincent Tavernier)
- Split server binding and accepting loop (Vincent Tavernier)
- Refactor Instance type (Vincent Tavernier)
- Add InstanceHandle type (Vincent Tavernier)
- Add trace points (Vincent Tavernier)
- Simplify RawImage, introduce Image trait (Vincent Tavernier)
- Move image reduction code to image module (Vincent Tavernier)
- Use u16 for image width and height (Vincent Tavernier)
- Use InstanceHandle for Boblight server (Vincent Tavernier)
- Switch to tracing (Vincent Tavernier)
- Switch to TOML for config (Vincent Tavernier)
- Add device rewriter wrapper (Vincent Tavernier)
- Implement DummyDevice using Rewriter (Vincent Tavernier)
- Remove useless #[serde(default = "...")] (Vincent Tavernier)
- config: Refactor module (Vincent Tavernier)
- config: Introduce backend module (Vincent Tavernier)
- color: Move color_to8 and color_to16 to utils (Vincent Tavernier)
- api: Simplify JSON tan handling (Vincent Tavernier)
Performance Improvements
- Introduce ImageView type (Vincent Tavernier)
- Optimize image reducer (Vincent Tavernier)
- Optimize black border detector (Vincent Tavernier)
- Precompute image reducer maps (Vincent Tavernier)
Tests
- Add image reducer benchmark (Vincent Tavernier)
Builds
- Update dependencies (Vincent Tavernier)
- Update dependencies (Vincent Tavernier)
- Add hyperion.ng reference as submodule (Vincent Tavernier)
- Simplify cross-compiling (Vincent Tavernier)
- Only include png feature of image crate (Vincent Tavernier)
- Update dependencies (Vincent Tavernier)
- Update rust-toolchain (Vincent Tavernier)
Continuous Integration
- Configure caching (Vincent Tavernier)
- Configure nightly releases (Vincent Tavernier)
- Add target triple to cache key (Vincent Tavernier)
- Fix automatic-release usage (Vincent Tavernier)
- Fix caching key for matrix targets (Vincent Tavernier)
- Use rust-toolchain file (Vincent Tavernier)
- Fix uploaded artifacts names (Vincent Tavernier)
- Include everything in release folder (Vincent Tavernier)
- Fix automatic releases glob (Vincent Tavernier)
- Fix CI for Python dependency (Vincent Tavernier)
- merge build and release workflows (Vincent Tavernier)
Chores
- Bump version to 0.1.1 (Vincent Tavernier)
- Update TODOs (Vincent Tavernier)
- Bump version to 0.2.0 (Vincent Tavernier)