rust_road_router

Overview

Rust routing framework and toolkit

There are two crates. The engine which is a library containing several routing algorithms and utilities for working with routing data. The server crate builds on the engine library and provides and HTTP interface for answering routing queries. Refer to the readmes of the respective crates for more information.

Additonally, there is a lib directory, which contains InertialFlowCutter, a partitioning program to calculate nested disection orders for CCHs, as a git submodule.

Running CCH server with Docker

Using the following commands, a docker container can be launched, which imports routing data from HERE CSV files and runs the routing server.

git submodule update --init --recursive
docker build -t routing_engine .
docker run -p <target port>:80 --mount 'type=bind,src=<folder containing here csvs>,dst=/import' --mount 'type=volume,src=routing_engine_data,dst=/data' routing_engine

Here import will take 10 - 20 minutes and might need a lot of RAM for the link geometry. FlowCutter some minutes. Actual CCH preprocessing less than a minute. Refer to the readme of the server crate for API documentation.

Comments
  • Refactoring: less moving - more references

    Refactoring: less moving - more references

    Stop taking ownership of graph in the algorithms for querying shortest paths. Saves memory in test main and hopefully allows a nicer architecture later on.

    ToDo:

    • [x] Should probably do some benchmarks that the smart pointers are optimized away properly and don't lead to some unwanted dynamic dispatches...
    opened by tim3z 2
  • Bump memoffset from 0.2.1 to 0.6.5 in /server

    Bump memoffset from 0.2.1 to 0.6.5 in /server

    Bumps memoffset from 0.2.1 to 0.6.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Bump rocket from 0.3.6 to 0.4.11 in /server

    Bump rocket from 0.3.6 to 0.4.11 in /server

    Bumps rocket from 0.3.6 to 0.4.11.

    Release notes

    Sourced from rocket's releases.

    Rocket v0.4.10

    See the CHANGELOG for more information.

    Rocket v0.4.9

    See the CHANGELOG for more information.

    Rocket v0.4.8

    See the CHANGELOG for more information.

    Rocket v0.4.7

    See the CHANGELOG for more information.

    Rocket v0.4.6

    See the CHANGELOG for more information.

    Rocket v0.4.5

    See the CHANGELOG for more information.

    Rocket v0.4.4

    See the CHANGELOG for more information.

    Rocket v0.4.3

    See the CHANGELOG for more information.

    Rocket v0.4.2

    See the CHANGELOG for more information.

    Rocket v0.4.1

    See the CHANGELOG for more information.

    Rocket v0.4.0

    See the CHANGELOG and news article for more information.

    Rocket v0.4-rc.2

    See the CHANGELOG and news article for more information.

    Rocket v0.4-rc.1

    See the CHANGELOG and news article for more information.

    Rocket v0.3.17

    See the CHANGELOG for more information.

    Rocket v0.3.16

    See the CHANGELOG for more information.

    Rocket v0.3.15

    See the CHANGELOG for more information.

    Rocket v0.3.14

    See the CHANGELOG for more information.

    ... (truncated)

    Changelog

    Sourced from rocket's changelog.

    Version 0.5.0-rc.2 (May 09, 2022)

    Major Features and Improvements

    • Introduced [rocket_db_pools] for asynchronous database pooling.
    • Introduced support for [mutual TLS] and client [Certificate]s.
    • Added a [local_cache_once!] macro for request-local storage.
    • Added a [v0.4 to v0.5 migration guide] and [FAQ] to Rocket's website.
    • Introduced [shutdown fairings].

    Breaking Changes

    • Hash impls for MediaType and ContentType no longer consider media type parameters.
    • TLS config values are only available when the tls feature is enabled.
    • [MediaType::with_params()] and [ContentType::with_params()] are now builder methods.
    • Content-Type [content] responder type names are now prefixed with Raw.
    • The content::Plain responder is now called content::RawText.
    • The content::Custom<T> responder was removed in favor of [(ContentType, T)].
    • TLS config structs are now only available when the tls feature is enabled.
    • Removed CookieJar::get_private_pending() in favor of [CookieJar::get_pending()].
    • The [local_cache!] macro accepts fewer types. Use [local_cache_once!] as appropriate.
    • When requested, the FromForm implementations of Vec and Maps are now properly lenient.
    • To concord with browsers, the [ and ] characters are now accepted in URI paths.
    • The [ and ] characters are no longer encoded by [uri!].
    • [Rocket::launch()] allows Rocket recovery by returning the instance after shutdown.
    • ErrorKind::Runtime was removed; [ErrorKind::Shutdown] was added.

    General Improvements

    • [Rocket] is now #[must_use].
    • Support for HTTP/2 can be disabled by disabling the default http2 crate feature.
    • Added [rocket::execute()] for executing Rocket's launch() future.
    • Added the [context!] macro to [rocket_dyn_templates] for ad-hoc template contexts.
    • The time crate is re-exported from the crate root.
    • The FromForm, Responder, and UriDisplay derives now fully support generics.
    • Added helper functions to serde submodules.
    • The [Shield] HSTS preload header now includes includeSubdomains.
    • Logging ignores write! errors if stdout disappears, preventing panics.
    • Added [Client::terminate()] to run graceful shutdown in testing.
    • Shutdown now terminates the async runtime, never the process.

    HTTP

    • Introduced [Host] and the [&Host] request guard.
    • Added Markdown (text/markdown) as a known media type.
    • Added [RawStr::percent_encode_bytes()].
    • NODELAY is now enabled on all connections by default.
    • The TLS implementation handles handshakes off the main task, improving DoS resistance.

    Request

    ... (truncated)

    Commits
    • a316991 New version: 0.4.11.
    • 5824f56 Remove removed rustc features.
    • 08e5b6d New version: 0.4.10.
    • 3276b87 Remove use of unsafe in 'parse_owned()'.
    • aabd886 New version: 0.4.9.
    • f2a56f4 Fix 'Try' 'impl FromResidual<Result> for Outcome'.
    • 018b57e Use '-Zrustdoc-map' to fill in external doc URLs.
    • 7adfbd5 New version: 0.4.8.
    • 6850f95 Update 'base64' to 0.13'.
    • 425f741 Update 'Try' impl, codegen for nightly-2021-05-18.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Bump generic-array from 0.9.0 to 0.13.3 in /server

    Bump generic-array from 0.9.0 to 0.13.3 in /server

    Bumps generic-array from 0.9.0 to 0.13.3.

    Release notes

    Sourced from generic-array's releases.

    0.12.0 Release

    • Allow trailing commas in arr! macro.
    • BREAKING: Serialize GenericArray using serde tuples, instead of variable-length sequences. This may not be compatible with old serialized data.

    0.11.1

    Pre- serialization fix release

    Changelog

    Sourced from generic-array's changelog.

    • 0.13.3

      • Backport the unsoundness fix for the arr! macro.
    • 0.13.2

      • Add feature more_lengths, which adds more From/Into implementations for arrays of various lengths.
    • 0.13.1

      • Mark GenericArray as #[repr(transparent)]
      • Implement Into<[T; N]> for GenericArray<T, N> up to N=32
    • 0.13.0

      • Allow arr! to be imported with use syntax.
        • Requires minumum Rust version of 1.30.1
    • 0.12.2

      • Implement FusedIterator for GenericArrayIter
    • 0.12.1

      • Use internal iteration where possible and provide more efficient internal iteration methods.
    • 0.12.0

      • Allow trailing commas in arr! macro.
      • BREAKING: Serialize GenericArray using serde tuples, instead of variable-length sequences. This may not be compatible with old serialized data.
    • 0.11.0

      • BREAKING Redesign GenericSequence with an emphasis on use in generic type parameters.
      • Add MappedGenericSequence and FunctionalSequence
        • Implements optimized map, zip and fold for GenericArray, &GenericArray and &mut GenericArray
      • BREAKING Remove map_ref, zip_ref and map_slice
        • map_slice is now equivalent to GenericArray::from_iter(slice.iter().map(...))
    • 0.10.0

      • Add GenericSequence, Lengthen, Shorten, Split and Concat traits.
      • Redefine transmute to avert errors.
    • 0.9.0

      • Rewrite construction methods to be well-defined in panic situations, correctly dropping elements.
      • NoDrop crate replaced by ManuallyDrop as it became stable in Rust core.
      • Add optimized map/map_ref and zip/zip_ref methods to GenericArray
    • 0.8.0

      • Implement AsRef, AsMut, Borrow, BorrowMut, Hash for GenericArray
      • Update serde to 1.0
      • Update typenum
      • Make macro arr! non-cloning
      • Implement From<[T; N]> up to N=32
      • Fix #45
    • 0.7.0

      • Upgrade serde to 0.9
      • Make serde with no_std
      • Implement PartialOrd/Ord for GenericArray
    • 0.6.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Bump crossbeam-utils from 0.2.2 to 0.8.8 in /server

    Bump crossbeam-utils from 0.2.2 to 0.8.8 in /server

    Bumps crossbeam-utils from 0.2.2 to 0.8.8.

    Release notes

    Sourced from crossbeam-utils's releases.

    crossbeam-utils 0.8.8

    • Fix a bug when unstable loom support is enabled. (#787)

    crossbeam-utils 0.8.7

    • Add AtomicCell<{i*,u*}>::{fetch_max,fetch_min}. (#785)
    • Add AtomicCell<{i*,u*,bool}>::fetch_nand. (#785)
    • Fix unsoundness of AtomicCell<{i,u}64> arithmetics on 32-bit targets that support Atomic{I,U}64 (#781)

    crossbeam-utils 0.8.6

    • Re-add AtomicCell<{i,u}64>::{fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor} that were accidentally removed in 0.8.0 0.7.1 on targets that do not support Atomic{I,U}64. (#767)
    • Re-add AtomicCell<{i,u}128>::{fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor} that were accidentally removed in 0.8.0 0.7.1. (#767)

    crossbeam-utils 0.8.5

    • Add AtomicCell::fetch_update (#704)
    • Support targets that do not have atomic CAS on stable Rust (#698)

    crossbeam-utils 0.8.4

    • Bump loom dependency to version 0.5. (#686)

    crossbeam-utils 0.8.3

    • Make loom dependency optional. (#666)

    crossbeam-utils 0.8.2

    • Deprecate AtomicCell::compare_and_swap. Use AtomicCell::compare_exchange instead. (#619)
    • Add Parker::park_deadline. (#563)
    • Improve implementation of CachePadded. (#636)
    • Add unstable support for loom. (#487)

    crossbeam-utils 0.8.1

    • Make AtomicCell::is_lock_free always const fn. (#600)
    • Fix a bug in seq_lock_wide. (#596)
    • Remove const_fn dependency. (#600)
    • crossbeam-utils no longer fails to compile if unable to determine rustc version. Instead, it now displays a warning. (#604)
    Changelog

    Sourced from crossbeam-utils's changelog.

    Version 0.8.1

    • Support targets that do not have atomic CAS on stable Rust (#698)

    Version 0.8.0

    • Bump the minimum supported Rust version to 1.36.
    • Bump crossbeam-channel to 0.5.
    • Bump crossbeam-deque to 0.8.
    • Bump crossbeam-epoch to 0.9.
    • Bump crossbeam-queue to 0.3.
    • Bump crossbeam-utils to 0.8.

    Version 0.7.3

    • Fix breakage with nightly feature due to rust-lang/rust#65214.
    • Bump crossbeam-channel to 0.4.
    • Bump crossbeam-epoch to 0.8.
    • Bump crossbeam-queue to 0.2.
    • Bump crossbeam-utils to 0.7.

    Version 0.7.2

    • Bump crossbeam-channel to 0.3.9.
    • Bump crossbeam-epoch to 0.7.2.
    • Bump crossbeam-utils to 0.6.6.

    Version 0.7.1

    • Bump crossbeam-utils to 0.6.5.

    Version 0.7.0

    • Remove ArcCell, MsQueue, and TreiberStack.
    • Change the interface of ShardedLock to match RwLock.
    • Add SegQueue::len().
    • Rename SegQueue::try_pop() to SegQueue::pop().
    • Change the return type of SegQueue::pop() to Result.
    • Introduce ArrayQueue.
    • Update dependencies.

    Version 0.6.0

    • Update dependencies.

    Version 0.5.0

    • Update crossbeam-channel to 0.3.
    • Update crossbeam-utils to 0.6.
    • Add AtomicCell, SharedLock, and WaitGroup.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Bump smallvec from 0.4.4 to 1.8.0 in /server

    Bump smallvec from 0.4.4 to 1.8.0 in /server

    Bumps smallvec from 0.4.4 to 1.8.0.

    Release notes

    Sourced from smallvec's releases.

    v1.8.0

    • Add optional support for the arbitrary crate (#275).

    v1.7.0

    • new_const and from_const constructors for creating a SmallVec in const contexts. Requires Rust 1.51 and the optional const_new feature. (#265)

    v1.6.1

    • Fix a possible buffer overflow in insert_many (#252, #254).

    v1.6.0

    • The "union" feature is now compatible with stable Rust 1.49 (#248, #247).
    • Fixed warnings when compiling with Rust 1.51 nightly (#242, #246).

    v1.5.1

    • Improve performance of push (#241).

    v1.5.0

    • Add the append method (#237).
    • Add support for more array sizes between 17 and 31 (#234).
    • Don't panic on deserialization errors (#238).

    v1.4.2

    • insert_many no longer leaks elements if the provided iterator panics (#213).
    • The unstable const_generics and specialization features are updated to work with the most recent nightly Rust toolchain (#232).
    • Internal code cleanup (#229, #231).

    v1.4.1

    • Don't allocate when the size of the element type is zero. Allocating zero bytes is undefined behavior. (#228)

    v1.4.0

    • Add try_reserve, try_reserve_exact, and try_grow methods (#214).

    v1.3.0

    • Add a new unstable const_generics feature (#204).
    • Improve inlining of constructor functions (#206).
    • Add a slice.to_smallvec() convenience method (#203).
    • Documentation and testing improvements.

    v1.2.0

    • IntoIter now implements Debug (#196).
    • smallvec! macro is now easier to use in no_std contexts where the vec! macro isn't automatically imported (#198).

    v1.1.0

    • Added new method SmallVec::into_boxed_slice (#190).
    • Added new methods IntoIter::as_slice and as_mut_slice (#182).
    • IntoIter now implements Clone (#192).
    • Improved documentation and testing (#186, #189, #193).
    • Minor code cleanups (#176).

    v1.0.0

    ... (truncated)

    Commits
    • 0a4fdff Version 1.8.0
    • 6d0dea5 Auto merge of #275 - as-com:arbitrary-support, r=mbrubeck
    • 9bcd950 Add support for arbitrary
    • 7cbb3b1 Auto merge of #271 - saethlin:drain-aliasing-test, r=jdm
    • 0fced9d Test for drains that shift the tail, when inline
    • 218e0bb Merge pull request #270 from servo/github-actions
    • 52c50af Replace TravisCI with Github Actions.
    • 5ae217a Include the cost of shifts in insert/remove benchmarks (#268)
    • 58edc0e Version 1.7.0
    • 1e4b151 Added feature const_new which enables SmallVec::new_const() (#265)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Bump crossbeam-deque from 0.2.0 to 0.8.1 in /server

    Bump crossbeam-deque from 0.2.0 to 0.8.1 in /server

    Bumps crossbeam-deque from 0.2.0 to 0.8.1.

    Release notes

    Sourced from crossbeam-deque's releases.

    crossbeam-deque 0.8.1

    Changelog

    Sourced from crossbeam-deque's changelog.

    Version 0.8.1

    • Support targets that do not have atomic CAS on stable Rust (#698)

    Version 0.8.0

    • Bump the minimum supported Rust version to 1.36.
    • Bump crossbeam-channel to 0.5.
    • Bump crossbeam-deque to 0.8.
    • Bump crossbeam-epoch to 0.9.
    • Bump crossbeam-queue to 0.3.
    • Bump crossbeam-utils to 0.8.

    Version 0.7.3

    • Fix breakage with nightly feature due to rust-lang/rust#65214.
    • Bump crossbeam-channel to 0.4.
    • Bump crossbeam-epoch to 0.8.
    • Bump crossbeam-queue to 0.2.
    • Bump crossbeam-utils to 0.7.

    Version 0.7.2

    • Bump crossbeam-channel to 0.3.9.
    • Bump crossbeam-epoch to 0.7.2.
    • Bump crossbeam-utils to 0.6.6.

    Version 0.7.1

    • Bump crossbeam-utils to 0.6.5.

    Version 0.7.0

    • Remove ArcCell, MsQueue, and TreiberStack.
    • Change the interface of ShardedLock to match RwLock.
    • Add SegQueue::len().
    • Rename SegQueue::try_pop() to SegQueue::pop().
    • Change the return type of SegQueue::pop() to Result.
    • Introduce ArrayQueue.
    • Update dependencies.

    Version 0.6.0

    • Update dependencies.

    Version 0.5.0

    • Update crossbeam-channel to 0.3.
    • Update crossbeam-utils to 0.6.
    • Add AtomicCell, SharedLock, and WaitGroup.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Improve docker build

    Improve docker build

    For a successful docker build I had to add the following include in the InertialFlowCutter submodule:

    diff --git a/src/list_graph.h b/src/list_graph.h
    index 7443eb6..5889918 100644
    --- a/src/list_graph.h
    +++ b/src/list_graph.h
    @@ -4,6 +4,7 @@
     #include "array_id_func.h"
     
     #include <tuple>
    +#include <string>
     
     struct ListGraph{
            ListGraph()=default;
    

    It did build on Ubuntu 20.04 (gcc 9.3.0) without this patch though.

    But I still wasn't able to test, since I couldn't find data in the expected format. The closest thing from HERE I found was the RDF CSV data from https://developer.here.com/sample-data Any pointers to test data?

    opened by pka 1
  • Make parallelized bidirectional dijkstra actually useful

    Make parallelized bidirectional dijkstra actually useful

    I finaly got to fix tweak the multithreaded bidirectional dijkstra, so it actually yields a better performance. Learned quite something about rust during that. The code should definitely be refactored at some point. But now it's at least fast 😄

    opened by tim3z 1
  • Dedup v2

    Dedup v2

    This is a vastly improved version of #1. I learned a lot about rust since the first try, and this one here is much more elegant and much more flexible. Plus it will help a lot for coming changes. It uses some neat tricks from rusts awesome type system. Including genericness over owned and shared data, associated types and higher kinded trait bounds. Once rust-lang/rfcs#2071 and rust-lang/rfcs#1598 are implemented the code can be cleaned up a little further.

    opened by tim3z 0
  • link speed estimates

    link speed estimates

    Implement an algorithm for link speed estimates. In terms of architecture the algorithm can even be used as a streaming algorithm. The actuall calculations of the quality score and velocities are conceptually similar to the BMW proposal, but avoid the problems I mentioned in my email. So far no upper and lower bounds are derived, so thats a TODO, but I'd like to talk through the semantics of that beforehand. Another TODO is taking speed limits on links into account. Nevertheless, this seems like a very good start to me. The estimator state machine feels like a very well fitting and extensible way to decompose the complexity of the problem.

    opened by tim3z 0
Owner
KIT ITI Algorithmics Group
Algorithmics Group of the Institute of Theoretical Informatics at the Karlsruhe Institute of Technology.
KIT ITI Algorithmics Group