1# ArcSwap 2 3[](https://github.com/vorner/arc-swap/actions) 4[](https://codecov.io/gh/vorner/arc-swap) 5[](https://docs.rs/arc-swap) 6 7This provides something similar to what `RwLock<Arc<T>>` is or what 8`Atomic<Arc<T>>` would be if it existed, optimized for read-mostly write-seldom 9scenarios, with consistent performance characteristics. 10 11Read [the documentation](https://docs.rs/arc-swap) before using. 12 13## Rust version policy 14 15The 1. version will build on any edition 2018 capable compiler. This does not 16include: 17 18* Tests. Tests build and run on recent compilers, mostly because of 19 dependencies. 20* Additional feature flags. Most feature flags are guaranteed to build since the 21 version they are introduced. Experimental features are without any guarantees. 22 23## License 24 25Licensed under either of 26 27 * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) 28 * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) 29 30at your option. 31 32### Contribution 33 34Unless you explicitly state otherwise, any contribution intentionally 35submitted for inclusion in the work by you, as defined in the Apache-2.0 36license, shall be dual licensed as above, without any additional terms 37or conditions. 38 39[`Arc`]: https://doc.rust-lang.org/std/sync/struct.Arc.html 40[`AtomicPtr`]: https://doc.rust-lang.org/std/sync/atomic/struct.AtomicPtr.html 41[`ArcSwap`]: https://docs.rs/arc-swap/*/arc_swap/type.ArcSwap.html 42