Release 0.3.1 (#276)

diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 29e6e2b..7132a28 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -43,7 +43,7 @@
 
     strategy:
       matrix:
-        rust: [nightly-2022-03-24]
+        rust: [nightly-2024-01-13]
         features: ["", "rayon", "nightly_aarch64_neon"]
 
     steps:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 21d2721..b902025 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@
 All notable changes to this project will be documented in this file.
 This project adheres to [Semantic Versioning](http://semver.org/).
 
+## v0.3.1 (2024-01-13)
+
+- Added a WASM SIMD implementation.
+- Allow reading the XMP packet.
+- Admit more precision values in JPEG Lossless.
+
 ## v0.3.0 (2022-10-17)
 
 - The MSRV policy is now managed by the `rust-version` field in `Cargo.toml`.
diff --git a/Cargo.toml b/Cargo.toml
index cb8a5f9..043be24 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 edition = "2021"
 
 rust-version = "1.61.0"