Skip to content

Instantly share code, notes, and snippets.

@whytro
Last active January 5, 2024 13:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save whytro/6af6cade4b1a5c7cbb11ee70fb16cf55 to your computer and use it in GitHub Desktop.
Save whytro/6af6cade4b1a5c7cbb11ee70fb16cf55 to your computer and use it in GitHub Desktop.
GSoC 2023 - Final Report

gsoc

Google Summer of Code 2023 w/ OpenStreetMap

Mentors

Project Details

OSRM Python Bindings

Develop Python bindings to the OSRM (Open Source Routing Machine) C++ library using nanobind, with the end goal of publishing the package to PyPI. This would allow OSRM to function as a Python library, as well as increase ease of use via the availability of PyPI packages.

Project Repository

Contributions

Summary

In this project, I developed Python bindings for the Open Source Routing Machine C++ backend - using nanobind. Appropriate adaptations were also made for user-friendliness, such that the user is not required to remember specific objects for certain parameter types.

As the project involved the creation of a new repository and package, documentation and appropriate CI workflows and tests for automated tests were also developed - for integration into cibuildwheel, and hence, for easier compilation and deployment of packages.

Merged Code/Pull Requests

cibuildwheel

Documentation

Bindings

Current State

There are some issues in the current state of the project:

High Priority:

  • Windows support is missing

Medium Priority:

  • Some object types do not get abstracted (ie. Approach is not instantiable as a string, and hence inaccessible)
  • The bindings for the boost::optional type are awkward, and causes types like optional arrays to be unable to accept "None"
  • Output of boost::optional is not "tangible" (ie. it outputs an object of False type, rather than Python's False)

Low Priority:

  • Linter & formatter needs to be added

I'll work on addressing many of these issues soon, as these remaining issues are not something I'm happy about leaving in.

Acknowledgements

I'm very grateful to my mentors, Nils Nolde and Siarhei Fedartsou for their guidance over the course of GSoC 2023. They helped me learn as a developer, and identify areas of improvement, while also making my GSoC 2023 experience a positive one.

Overall, I've had a very positive experience participating in the Google Summer of Code program, and am grateful for this learning opportunity that was provided by Google.

@itzPranshul
Copy link

hello I am a open source beginner who wants to contribute in GSOC this year how can I get started with this organisation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment