All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
41.1.0 - 2026-07-16
- (database) add database fallback mode for BAL misses (#3754)
- (database) avoid double cloning in take_n_reverts (#3539)
- (database) use Option::filter in BundleAccount::take_info_revert (#3730)
41.0.0 - 2026-06-11
- (database) add conditional bundle update builder (#3729)
- avoid reallocations and cloning during commit (#3732)
15.0.2 - 2026-05-26
- add
OnStateHookforState<DB>(#3710)
15.0.1 - 2026-05-22
- updated the following local packages: revm-database-interface
15.0.0 - 2026-05-19
- show address or slot in BAL error (#3619)
- (state) Optimized index type for transaction ID using non-max (#3610)
- (account) Optimized index type for account ID using
non-max(#3605) - (database) add State::has_bal helper (#3604)
- gracefully handle commits of non-cached accounts (#3657)
- (database) preserve commit_iter semantics (#3681)
- update alloy-eip7928 to newer version (#3627)
- backport v107 release notes from branch (#3617)
- enable and fix clippy::missing_const_for_fn (#3592)
- rm op-revm (migrated to ethereum-optimism/optimism) (#3568)
13.0.1 - 2026-04-17
- updated the following local packages: revm-state, revm-database-interface
13.0.0 - 2026-04-10
- add crate-level re-exports for all revm-* dependencies (#3507)
- remove no-op background transition merge builder toggle (#3510)
12.0.0 - 2026-03-04
- bump revm-database-interface to v10.0.0
11.0.0 - 2026-03-02
- (database) add clear() to CacheState and TransitionState (#3390)
- (database) add iter and lowest helpers to BlockHashCache (#3352)
- (database) add StateBuilder::with_bal_builder_if (#3351)
- (database) add storage getter to BundleState (#3321)
- forward storage_by_account_id in WrapDatabaseRef (#3441)
- (database) allow EIP161 state clear for empty Loaded and Changed accounts (#3421)
- (db) use self.storage() in storage_by_account_id to avoid cache bypass (#3385)
- (bal) fix populated account if pre-state was none (#3357)
- (database) BlockHashCache incorrectly returns zero for block 0 (#3319)
- move EIP-161 state clear into journal finalize (#3444)
- deduplicate CacheDB::basic by delegating to load_account (#3447)
- (database) add reserve calls in merge_transitions and extend_state (#3430)
- reserve capacity in add_transitions (#3373)
- remove GPL mention and update gmp feature comments (#3383)
- use fixed bytes hashmaps from alloy-core (#3358)
- Use O(1) ring buffer cache for block hashes instead of BTreeMap (#3299)
10.0.0 - 2026-01-15
- (cache-db) Added pritty_print for CacheDB (#3296)
- Propagate
map-foldhashFeature Through Dependency Chain (#3252) - BAL EIP-7928 (#3070)
- DatabaseCommitExt::drain_balances (#3205)
- DatabaseCommitExt + increment_balances (#3195)
- DatabaseCommit::commit_iter (#3197)
- Restrict Database::Error. JournaledAccountTr (#3199)
- (database) return error instead of panic when block not found in AlloyDB (#3284)
- (database) make DatabaseCommit dyn-compatible (#3264)
- (database) prevent deadlock in (#3251)
- (database) verify handle belongs to current runtime before block_in_place (#3212)
- fix typos, grammar errors, and improve documentation consistency (#3294)
- fix typos and grammar in database crate (#3279)
- happy new year, 2026 licence (#3272)
- avoid collect in CacheState commit (#3242)
- (database) use fixed hashmaps in cache db (#3231)
- (database) avoid triple cache lookup (#3232)
- optimize vector initialization with size hints in state and precompile modules (#3191)
9.0.6 - 2025-11-14
- (database) return correct bytecode in BenchmarkDB::code_by_hash (#3170)
9.0.5 - 2025-11-10
- (op) Ensure L1Block account is always loaded (#3150)
9.0.4 - 2025-11-07
- updated the following local packages: revm-primitives, revm-bytecode, revm-state, revm-database-interface
9.0.3 - 2025-10-30
- updated the following local packages: revm-bytecode, revm-state, revm-database-interface
9.0.2 - 2025-10-15
- updated the following local packages: revm-bytecode, revm-state, revm-database-interface
9.0.1 - 2025-10-15
- updated the following local packages: revm-primitives, revm-bytecode, revm-state, revm-database-interface
9.0.0 - 2025-10-09
- (database) optimize BTreeMap lookup in BundleState::build() (#3068)
- (database) remove unnecessary Send+Sync bounds from TryDatabaseCommit for Arc (#3063)
- remove deprecated methods (#3050)
8.0.0 - 2025-10-07
- Apply spelling corrections from PRs #2926, #2915, #2908 (#2978)
- add boundless (#3043)
- (database) extract duplicate test balance constants (#3017)
- pretty print state in revme statetest (#2979)
- (database) avoid panic by conditionally using block_in_place (#2927)
- add SECURITY.md (#2956)
7.0.5 - 2025-08-23
7.0.4 - 2025-08-12
- use mem::take (#2870)
- small performance and safety improvements (#2868)
- use HashMap::or_insert_with lazily compute (#2864)
7.0.3 - 2025-08-06
7.0.2 - 2025-07-23
- updated the following local packages: revm-primitives, revm-bytecode, revm-database-interface, revm-state
7.0.1 - 2025-07-03
- updated the following local packages: revm-bytecode, revm-state, revm-database-interface
7.0.0 - 2025-06-30
- updated the following local packages: revm-bytecode, revm-state, revm-database-interface
6.0.0 - 2025-06-19
- (precompile) rug/gmp-based modexp (#2596)
- change account state to None if NotExisting on insert_account_info (#2630)
5.0.0 - 2025-06-06
- (database) Implement DatabaseRef for State (#2570)
- added TxEnv::new_bench() add util function (#2556)
- transact multi tx (#2517)
- Avoid clone before converting ref BundleAccount to CacheAccount (#2574)
- (docs) add lints to database-interface and op-revm crates (#2568)
4.0.1 - 2025-05-22
4.0.0 - 2025-05-07
Dependency bump
3.1.0 - 2025-05-07
- (database) re-export all public items from alloydb when feature … (#2443)
- copy edit The Book (#2463)
- bump dependency version (#2431)
- fixed broken link (#2421)
- remove alloy-sol-types deps (#2411)
3.0.0 - 2025-04-09
- clean unsed indicatif (#2379)
- add 0x prefix to b256! and address! calls (#2345)
- (database) remove auto_impl dependency (#2344)
2.0.0 - 2025-03-28
- make number more readable (#2300)
1.0.0 - 2025-03-24
- docs nits (#2292)
1.0.0-alpha.5 - 2025-03-21
1.0.0-alpha.4 - 2025-03-16
- updated the following local packages: revm-primitives, revm-bytecode
1.0.0-alpha.3 - 2025-03-11
- correct propagate features (#2177)
- bump alloy (#2183)
1.0.0-alpha.2 - 2025-03-10
- (db) separate fields from
CacheDBintoCache(#2131) - PrecompileErrors to PrecompileError (#2103)
- (deps) bump breaking deps (#2093)
- move all dependencies to workspace (#2092)
- re-export all crates from
revm(#2088)
1.0.0-alpha.1 - 2025-02-16
- Context execution (#2013)
- EthHandler trait (#2001)
- expose precompile address in Journal, DB::Error: StdError (#1956)
- integrate codspeed (#1935)
- (database) implement order-independent equality for Reverts (#1827)
- couple convenience functions for nested cache dbs (#1852)
- Restucturing Part7 Handler and Context rework (#1865)
- add support for async database (#1809)
- restructure Part2 database crate (#1784)
- (examples) generate block traces (#895)
- implement EIP-4844 (#668)
- (Shanghai) All EIPs: push0, warm coinbase, limit/measure initcode (#376)
- Migrate
primitive_types::U256toruint::Uint<256, 4>(#239) - Introduce ByteCode format, Update Readme (#156)
- no_std for revm-database (#2077)
- fix typos (#620)
- set alpha.1 version
- Bump licence year to 2025 (#2058)
- add comment for pub function and fix typo (#2015)
- bump alloy versions to match latest (#2007)
- fix comments and docs into more sensible (#1920)
- bumps select alloy crates to 0.6 (#1854)
- (TransitionAccount) remove unneeded clone (#1860)
- (CacheAccount) remove unneeded clone (#1859)
- bump alloy to 0.4.2 (#1817)
- (primitives) replace HashMap re-exports with alloy_primitives::map (#1805)
- Bump new logo (#1735)
- (README) add rbuilder to used-by (#1585)
- added simular to used-by (#1521)
- add Trin to used by list (#1393)
- Fix typo in readme (#1185)
- Add Hardhat to the "Used by" list (#1164)
- Add VERBS to used by list (#1141)
- license date and revm docs (#1080)
- (docs) Update the benchmark docs to point to revm package (#906)
- (docs) Update top-level benchmark docs (#894)
- clang requirement (#784)
- Readme Updates (#756)
- Logo (#743)
- book workflow (#537)
- add example to revm crate (#468)
- Update README.md (#424)
- add no_std to primitives (#366)
- revm-precompiles to revm-precompile
- Bump v20, changelog (#350)
- typos (#232)
- Add support for old forks. (#191)
- revm bump 1.8. update libs. snailtracer rename (#159)
- typo fixes
- fix readme typo
- Big Refactor. Machine to Interpreter. refactor instructions. call/create struct (#52)
- readme. debuger update
- Bump revm v0.3.0. README updated
- readme
- Add time elapsed for tests
- readme updated
- Include Basefee into cost calc. readme change
- Initialize precompile accounts
- Status update. Taking a break
- Merkle calc. Tweaks and debugging for eip158
- Replace aurora bn lib with parity's. All Bn128Add/Mul/Pair tests passes
- TEMP
- one tab removed
- readme
- README Example simplified
- Gas calculation for Call/Create. Example Added
- readme usage
- README changes
- Static gas cost added
- Subroutine changelogs and reverts
- Readme postulates
- Spelling
- Restructure project
- First iteration. Machine is looking okay