add DIFFERENCES.md (changes conduwuit makes from upstream)
Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
c534027fa4
commit
8c04dffbbd
1 changed files with 36 additions and 0 deletions
36
DIFFERENCES.md
Normal file
36
DIFFERENCES.md
Normal file
|
@ -0,0 +1,36 @@
|
|||
### list of features, bug fixes, etc that conduwuit does that upstream does not:
|
||||
|
||||
- Has a working CI/CD for tests, codebase warnings (rustc and clippy), caching, and build (still need to output artifacts with build variants)
|
||||
- Fixed every single clippy (default lints) and rustc warnings, including some that were performance related or potential safety issues / unsoundness
|
||||
- Has dependabot and significantly updates all dependencies possible
|
||||
- Uses upstream reqwest instead of super old fork (via upstream MR)
|
||||
- Uses proper argon2 crate instead of questionable rust-argon2 crate
|
||||
- Improved and cleaned up logging (less noisy dead server logging, registration attempts, more useful troubleshooting logging, etc)
|
||||
- Attempts and interest in removing extreme and unnecessary panics/unwraps/expects that can lead to denial of service or such (upstream and upstream contributors want this unusual behaviour for some reason)
|
||||
- Merged and cleaned up upstream MRs that have been sitting for 6-12 months
|
||||
- Using latest rust-rocksdb git for the latest RocksDB release which has various fixes, features, improvements, etc, including some regarding database corruption.
|
||||
- Configurable RocksDB logging (`LOG` files) with proper defaults (rotate, max size, verbosity, etc) to stop LOG files from accumulating so much
|
||||
- Federated presence support and configurable local presence (via upstream MR)
|
||||
- Concurrency support for key fetching for faster remote room joins and room joins that will error less frequently (via upstream MR)
|
||||
- Experimental room version 11 suppor (via upstream MR)
|
||||
- Enabled all non-officially-supported room versions as experimental so we can at least attempt to join them
|
||||
- Configurable guest registration including forbidding guest registrations if no admin user is created yet, respects allow registration setting, and an optional override setting with a default of no guest registrations allowed.
|
||||
- Explicit startup error/warning if your configuration allows open registration without a token or such like Synapse
|
||||
- Improved RocksDB defaults to use new features that help with performance significantly, uses settings tailored to SSDs, and a conduwuit setting to tell RocksDB to use settings that are tailored to HDDs or slow spinning rust storage.
|
||||
- Updated Ruma to almost latest version possible, and add some unstable MSCs (some still require an implementation though)
|
||||
- conduwuit allows MXIDs with `+` in them (thanks to Ruma update)
|
||||
- Revamped admin room infrastructure and commands (via upstream MR)
|
||||
- Make spaces/hierarchy cache use cache_capacity_modifier instead of hardcoded small value
|
||||
- Send missing push notifications on invitations (via upstream MR)
|
||||
- Make PDU appending, building, etc asynchronous
|
||||
- Add *optional* feature flag to use SHA256 key names for media instead of base64 to overcome filesystem file name length limitations (OS error file name too long) (via upstream MR)
|
||||
- Add *optional* feature flag to enable zstd HTTP body compression
|
||||
- Add support for querying both Matrix SRV records, the deprecated `_matrix` record and `_matrix-fed` record if necessary
|
||||
- Add config option for device name federation with a privacy-friendly default (disabled)
|
||||
- Add config option for requiring authentication to the `/publicRooms` endpoint (room directory) with a default disabled for privacy
|
||||
- Add config option for federating `/publicRooms` endpoint (room directory) to other servers with a default disabled for privacy
|
||||
- Add support for listening on a UNIX socket for performance and host security with proper default permissions (660)
|
||||
- Add missing `destination` key to all `X-Matrix` `Authorization` requests (spec compliance issue)
|
||||
- Fix spec compliance issue with servers being able to fetch remote user profiles over federation for users who don't belong to our server (`/_matrix/federation/v1/query/profile`)
|
||||
- Use aggressive build-time performance optimisations for release builds (1 codegen unit, no debug, fat LTO, etc, and optimise all crates with same)
|
||||
- Raise various hardcoded timeouts in codebase that were way too short, making some things like room joins and client bugs error less or none at all than they should
|
Loading…
Add table
Reference in a new issue