47 lines
1.7 KiB
Rust
47 lines
1.7 KiB
Rust
// Copyright 2018 New Vector Ltd
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
//! This is a tool that attempts to further compress state maps within a
|
|
//! Synapse instance's database. Specifically, it aims to reduce the number of
|
|
//! rows that a given room takes up in the `state_groups_state` table.
|
|
|
|
#[cfg(feature = "jemalloc")]
|
|
#[global_allocator]
|
|
static GLOBAL: jemallocator::Jemalloc = jemallocator::Jemalloc;
|
|
|
|
use log::LevelFilter;
|
|
use std::env;
|
|
use std::io::Write;
|
|
|
|
use synapse_compress_state as comp_state;
|
|
|
|
fn main() {
|
|
// setup the logger
|
|
// The default can be overwritten with RUST_LOG
|
|
// see the README for more information <---- TODO
|
|
if env::var("RUST_LOG").is_err() {
|
|
let mut log_builder = env_logger::builder();
|
|
// Only output the log message (and not the prefixed timestamp etc.)
|
|
log_builder.format(|buf, record| writeln!(buf, "{}", record.args()));
|
|
// By default print all of the debugging messages from this library
|
|
log_builder.filter_module("synapse_compress_state", LevelFilter::Debug);
|
|
log_builder.init();
|
|
} else {
|
|
// If RUST_LOG was set then use that
|
|
env_logger::Builder::from_env("RUST_LOG").init();
|
|
}
|
|
|
|
comp_state::run(comp_state::Config::parse_arguments());
|
|
}
|