v5.1.0 No changes to the Python code in this release, only Rust and Javz. Additions (Rust): * stdlib: add fs_ls_tree, implementing a recursive ls of a FS tree * Switch NODE_PROPERTIES to Rust implementation * Switch EXTRACT_PERSONS to Rust implementation * Add 'compare-graphs' tool Soundness fixes (Rust): * Check CSV inputs are not a single non-header line, when expecting a header * Switch default port of the Rust gRPC server to 50091 Compilation fixes (Rust): * Lower MSRV to 1.79 Documentation: * rust doc: Move Crash Course to its own page + add Tutorial * Update gRPC documentation to run the Rust implementation * Fix documentation of DirEntry::permission * Fix docstring to mention inputs are CSV * Add diagnostic hint for when properties are not loaded Internal changes: * stdlib: port find_latest_snp() to typed labeled successor iterator * Remove unused Java utils and SWH-specific Java compression code * Make DefaultUnderlyingGraph and SwhLabeling newtypes * Fix warnings * Use ar_row's own decimal -> timestamp decoding * pytest.ini: Ignore Rust's target/