libLRS
It stands for library for linear referencing systems.
In the railway industry, most of the objects are located by a linear referencing system, a position along a track (i.e.: track 1, kilometer 3+532 meters).
As railways networks may be more than a century old, there are many exceptions, local specific rules…
The goal of the library is to have a flexible, high performance and easy to integrate linear referencing systems library that can be used in any system to manipulate LRSs:
- projecting from one linear referencing system to another
- converting from/to geographical coordinates
- work with spherical, projected and schematic coordinates
- integrate in existing workflows
- high performance
- extract geographical linestrings between two reference points
Who are the maintainers of the project (these will be the primary contacts for the OpenRail Association)?
[email protected], [email protected], [email protected]
SNCF Réseau, French Transportation Ministry (DGITM), European Union
GitHub
Which exact repositories do you intend to transfer to the GitHub organization of the OpenRail Association?
https://github.com/osrd-project/liblrs/
MIT https://github.com/osrd-project/liblrs/blob/main/LICENSE.md
Rust library:
- MIT
- Apache-2.0
Python binding:
- MIT
Javascript binding and demo app:
- MIT
- BSD-3-Clause license
- ISC license
No.
Does the project have a web site? Where is it? Are you ok with moving it to be hosted by the OpenRail Association?
There is a demonstration of the app hosted at https://osrd-project.github.io/liblrs/
We agree to move it to the OpenRail Association.
Matrix: https://matrix.to/#/#liblrs:osrd.fr
Product manager : [email protected] Lead developer : [email protected] Product owner : [email protected]
As the team is small, all decisions are made collaboratively. We meet each week to share progress and decide on next steps. We are open to include any interested person into the decision-making team.
The review of a maintainer is required.
Anybody can suggest a pull request. If it is accepted after the review, one becomes a committer.
Maintainers are co-opted by the other maintainers. Each candidate must be an active committer.
Every issue, pull request and review is public. Technical debates are done in the public matrix channel.
- Publish the library on crates.io, npm and pypi
- Documentation for the various edge case
- Interactive demonstration based on opendata
- Use liblrs for the project OSRD https://github.com/OpenRailAssociation/osrd
Appart for railway infrastructure manager, any company working with linear infrastructure should be interested:
- electrical network
- pipeline operator
- highway operator
- touristical bike route coordinator
This library has the ambition to be a cornerstone of any tool concerning rail networks. As such, being included in the OpenRail Association will allow the library to be considered as a neutral solution and give more visibility to become the reference library for LRSs.
Are there competing products or projects? If there are please explain how the proposed projects differentiates.
GIS software (like ARCGis and QGIS) have plugins to manipulate those data. However they cannot be used with existing software, as OSRD for example.
What standards does the project implement or rely on? How are they related to other existing standards?
The data representation and the vocabulary is based on the article A generic Data Model for Linear Referencing Systems published in the National Cooperative Highway Research Program, Research Result Digest (number 218, September 1997) and the ISO 19148 norm.
What is the tech stack of the project? Name the major programming languages and frameworks which are used.
The core is developed in rust.
Bindings are generated for python and javascript. Bindings for other languages will be added if asked.
- Validation of the proposed data model by other infrastructure managers
- Code reviews from other users: optimization and reliability of the code
- New features proposals and/or implementation
- Proof of usefulness in other railway-related projects that could make the project known in other, non railway-related organizations
We think that libLRS can be useful for every linear infrastructure manager and hope that the OpenRail platform will help to share and improve the project.