json_archive/lib.rs
1// json-archive is a tool for tracking JSON file changes over time
2// Copyright (C) 2025 Peoples Grocers LLC
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU Affero General Public License as published
6// by the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU Affero General Public License for more details.
13//
14// You should have received a copy of the GNU Affero General Public License
15// along with this program. If not, see <https://www.gnu.org/licenses/>.
16//
17// To purchase a license under different terms contact admin@peoplesgrocers.com
18// To request changes, report bugs, or give user feedback contact
19// marxism@peoplesgrocers.com
20//
21
22pub mod archive_open;
23pub mod archive_reader;
24pub mod archive_writer;
25pub mod atomic_file;
26pub mod compression_writer;
27pub mod detection;
28pub mod diagnostics;
29pub mod diff;
30pub mod event_deserialize;
31pub mod events;
32pub mod flags;
33pub mod pointer;
34mod pointer_errors;
35pub mod write_strategy;
36
37pub use archive_reader::{
38 apply_add, apply_change, apply_move, apply_remove, read_archive, read_events, EventIterator,
39 ReadMode, ReadResult,
40};
41pub use archive_writer::{default_output_filename, write_observation, ArchiveWriter};
42pub use detection::is_json_archive;
43pub use diagnostics::{Diagnostic, DiagnosticCode, DiagnosticCollector, DiagnosticLevel};
44pub use events::{Event, Header, Observation};
45pub use pointer::JsonPointer;
46pub use write_strategy::{
47 compression_from_extension, determine_strategy, CompressedPath, WriteStrategy,
48};