<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mmomtchev</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mmomtchev"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Mmomtchev"/>
	<updated>2026-05-25T04:19:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=GSoC_2022_Node.js_for_ZOO-Project&amp;diff=128695</id>
		<title>GSoC 2022 Node.js for ZOO-Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=GSoC_2022_Node.js_for_ZOO-Project&amp;diff=128695"/>
		<updated>2022-07-02T08:44:00Z</updated>

		<summary type="html">&lt;p&gt;Mmomtchev: /* ZOO-Project GSoC 2022 Proposal by @mmomtchev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;zoo-project-gsoc-2022-proposal-by-mmomtchev&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= ZOO-Project GSoC 2022 Contribution by @mmomtchev =&lt;br /&gt;
&lt;br /&gt;
== Adding Node.js support for service implementation to be run from the ZOO-Kernel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;abstract&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Abstract =&lt;br /&gt;
&lt;br /&gt;
The ZOO-Project is a solid WPS server able to handle services implemented in various different programming languages. The existing &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt; supports C, C++, and JS implementations with the SpiderMonkey engine. With this project, the objective is to add support for NodeJS implementation of the &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Mentors: Gérald Fenoy, Aditi Sawant, Rajat Shinde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;contributor-personal-details&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Contributor Personal Details =&lt;br /&gt;
&lt;br /&gt;
Momtchil Momtchev [mailto:momtchil@momtchev.com momtchil@momtchev.com], France +33611640937 https://github.com/mmomtchev https://twitter.com/mmomtchev https://mmomtchev.medium.com&lt;br /&gt;
&lt;br /&gt;
Graduated from the Université des Sciences et des Technologies de Lille with a French DEA in Computer Science (Master’s equivalent)&lt;br /&gt;
&lt;br /&gt;
Currently unemployed and looking for job in open-source&lt;br /&gt;
&lt;br /&gt;
First time applicant to GSoC&lt;br /&gt;
&lt;br /&gt;
Co-author and current maintainer of the Node.js bindings for GDAL (https://github.com/mmomtchev/node-gdal-async)&lt;br /&gt;
&lt;br /&gt;
Author of the React bindings for OpenLayers (https://github.com/mmomtchev/rlayers)&lt;br /&gt;
&lt;br /&gt;
Author of the Node.js bindings for ExprTk (https://github.com/mmomtchev/exprtk.js)&lt;br /&gt;
&lt;br /&gt;
Occasional Node.js and GDAL contributor&lt;br /&gt;
&lt;br /&gt;
Author of numerous smaller packages and tools (https://www.npmjs.com/~mmomtchev)&lt;br /&gt;
&lt;br /&gt;
Expert C/C++ and JS/TS engineer with Linux, macOS and Windows experience&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;existing-software&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Existing Software =&lt;br /&gt;
&lt;br /&gt;
Currently ZOO-Project supports JS services through the embedded version of the SpiderMonkey engine. It is linked as a shared library and every invocation of a service results in a separate instance of the SpiderMonkey engine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;proposed-solution&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
&lt;br /&gt;
The current latest LTS version of Node.js, Node.js 16.x, is to be embedded in the &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt; executable following the same architecture as SpiderMonkey.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that the next LTS version of Node.js, Node.js 18 is scheduled to be released during the GSoC timeline. As this version is not expected to replace the 16.x as recommended version until October 2022, it is believed that Node.js 16.x remains the safer choice.&lt;br /&gt;
&lt;br /&gt;
Node.js supports being built as a shared library since version 12.x. This feature is used by the Electron project which is its main maintainer. It allows the JS runtime to be loaded inside the address space of the calling program and to both call JS functions from the native code and expose native functions to the JS code.&lt;br /&gt;
&lt;br /&gt;
There are several different interfaces available for interacting with the Node.js runtime:&lt;br /&gt;
&lt;br /&gt;
* By calling raw internal V8 and Node.js methods which are usually not stable across different versions&lt;br /&gt;
* By using the [https://github.com/nodejs/nan NAN C++ API] C++ which is stable at the source level across different versions&lt;br /&gt;
* By using the [https://nodejs.org/api/n-api.html Node C N-API] which is stable at the binary level across different versions&lt;br /&gt;
* By using the [https://github.com/nodejs/node-addon-api Node Addon C++ API] which is stable at the binary level across different versions&lt;br /&gt;
&lt;br /&gt;
Of these methods, the Node C N-API seems to be the best suited for ZOO-Project as it is binary stable across different Node.js versions and it does not require C++.&lt;br /&gt;
&lt;br /&gt;
It should be noted that while these APIs/ABIs are usually meant to be used by native addons that are loaded by the main Node.js process as a shared library, they are also perfectly usable in the opposite direction - ie when Node.js is loaded as a shared library by a 3rd party process.&lt;br /&gt;
&lt;br /&gt;
Node.js supports running multiple V8 isolates, each with a separate main thread, offering a completely separate execution environment to each JS instance.&lt;br /&gt;
&lt;br /&gt;
These separate instances have separate event loops but can share the same worker thread pool.&lt;br /&gt;
&lt;br /&gt;
This mode of embedding Node.js matches most closely the existing JS architecture based on SpiderMonkey. It is also the preferred mode for embedding Node.js.&lt;br /&gt;
&lt;br /&gt;
The following alternatives have also been considered: * Run every instance of a service in a separate, external, Node.js process This mode will have a more expensive startup and will present unique challenges when implementing the various ZOO-Project routines which will have to communicate with the &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt; by some external mechanism - such as RabbitMQ. * Run all instances of a service in a single shared environment This mode offers the potentially best performance but it imposes upon the end-user to use very correctly the Node.js asynchronous mechanisms - failing to do so will result in latency spikes and possibly dropped connections.&lt;br /&gt;
&lt;br /&gt;
Rebuilding &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; as part of the &amp;lt;code&amp;gt;ZOO-Project&amp;lt;/code&amp;gt; build system is considered to be out of the scope of the current project - just as the current SpiderMonkey shared library is expected to be provided by the end-user, so will be &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; which is already carried by some major Linux distributions - Ubuntu being one of them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;testing-methodology&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Testing methodology =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ZOO-Project&amp;lt;/code&amp;gt; already has an existing testing framework which includes the SpiderMonkey services. The new Node.js implementation is to be able to run those services passing the existing SpiderMonkey tests without modifying the services code.&lt;br /&gt;
&lt;br /&gt;
Additionally, an &amp;lt;code&amp;gt;AddressSanitizer&amp;lt;/code&amp;gt; build, currently absent from &amp;lt;code&amp;gt;ZOO-Project&amp;lt;/code&amp;gt; is one of the stretch goals of the proposal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;proposal-timeline&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Proposal Timeline =&lt;br /&gt;
&lt;br /&gt;
I am fully committed to working on this project during this time period and I am free of any other professional obligations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;before-june-13&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Before June 13 ==&lt;br /&gt;
&lt;br /&gt;
* To familiarize myself completely with ZOO-Project functionality and architecture.&lt;br /&gt;
* To experiment with using &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt;, the embedded version of NodeJS and test the compatibility between the packaged &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; by the Linux distributions and the existing Node.js native addons&lt;br /&gt;
&amp;lt;span id=&amp;quot;june-13---july-25&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== June 13 - July 25 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;june-13---june-17&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== June 13 - June 17 ===&lt;br /&gt;
&lt;br /&gt;
* Implement the creation of the &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; context in &amp;lt;code&amp;gt;service_internal_nodejs.c&amp;lt;/code&amp;gt; to be called from &amp;lt;code&amp;gt;zoo_service_loader.c:loadServiceAndRun()&amp;lt;/code&amp;gt;&lt;br /&gt;
* Include &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt; build and link against it in the official Dockerfile&lt;br /&gt;
* Use a dummy static JS method&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;june-20---june-24&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== June 20 - June 24 ===&lt;br /&gt;
&lt;br /&gt;
* Test building with the versions included Ubuntu, Debian, CentOS and Fedora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;june-27---july-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== June 27 - July 1 ===&lt;br /&gt;
&lt;br /&gt;
* Implement &amp;lt;code&amp;gt;ZOORequest&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ZOOTranslate&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ZOOUpdateStatus&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;alert&amp;lt;/code&amp;gt; using Node N-API&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-4---july-8&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== July 4 - July 8 ===&lt;br /&gt;
&lt;br /&gt;
* Implement the object and the array transforms using Node N-API&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-11---july-15&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== July 11 - July 15 ===&lt;br /&gt;
&lt;br /&gt;
* Load the existing 3rd party code - mostly &amp;lt;code&amp;gt;proj4js&amp;lt;/code&amp;gt; into the environment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-18---july-22&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== July 18 - July 22 ===&lt;br /&gt;
&lt;br /&gt;
* Spare week for testing and debugging&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-25---july-29&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== July 25 - July 29 ==&lt;br /&gt;
&lt;br /&gt;
* Phase 1 evaluation: the existing SpiderMonkey unit tests should be passing on Node.js at this point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-29---september-4&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== July 29 - September 4 ==&lt;br /&gt;
&lt;br /&gt;
Stretch goals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-1---august-5&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 1 - August 5 ===&lt;br /&gt;
&lt;br /&gt;
* Add builtin Node.js GDAL support&lt;br /&gt;
* Allow JS services to use &amp;lt;code&amp;gt;gdal-async&amp;lt;/code&amp;gt; out of the box&lt;br /&gt;
* Reimplement the GDAL profile C++ service in JS as an example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-8---august-12&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 8 - August 12 ===&lt;br /&gt;
&lt;br /&gt;
* Create and automate an &amp;lt;code&amp;gt;AddressSanitizer&amp;lt;/code&amp;gt; build to be run in continuous integration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-15---august-19&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 15 - August 19 ===&lt;br /&gt;
&lt;br /&gt;
* Allow services to request to be executed in a single-instance mode by providing an &amp;lt;code&amp;gt;async&amp;lt;/code&amp;gt; function as entry point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-22---august-26&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 22 - August 26 ===&lt;br /&gt;
&lt;br /&gt;
* Add snapshot support to &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; - it could benefit from having the same V8 snapshot support as the Node.js main executable. V8 supports creating and restoring snapshots of a JS heap - this feature is used by Node.js to speed-up the initial loading of the JS class library - instead of compiling it at every process startup, it is compiled and initialized once during the build of the Node.js executable and then the JS heap is saved in a snapshot to be reused when launching Node.js. Currently, this feature is not readily available when using &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt;. Electron re-implements it on its own. This is to be submitted for merging back in Node.js.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-29---september-2&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 29 - September 2 ===&lt;br /&gt;
&lt;br /&gt;
* Spare week for testing and debugging&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;after-september-4&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== After September 4 ==&lt;br /&gt;
&lt;br /&gt;
* Phase 2 evaluation&lt;/div&gt;</summary>
		<author><name>Mmomtchev</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2022_Accepted&amp;diff=128611</id>
		<title>Google Summer of Code 2022 Accepted</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2022_Accepted&amp;diff=128611"/>
		<updated>2022-06-12T20:55:50Z</updated>

		<summary type="html">&lt;p&gt;Mmomtchev: replace the Node.js for Zoo-Project link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:GSoC2016Logo.jpg|400px|link=https://developers.google.com/open-source/gsoc/]] &amp;lt;font size=&amp;quot;+3&amp;quot;&amp;gt; @ &amp;lt;/font&amp;gt; &lt;br /&gt;
[[Image:Osgeo-logo.png|300px|link=http://www.osgeo.org]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Back to the main OSGeo [[Google Summer of Code 2022]] @ OSGeo wiki page.&lt;br /&gt;
&lt;br /&gt;
== Accepted Proposals ==&lt;br /&gt;
&lt;br /&gt;
This year OSGeo accepted 7 contributors working on the following [https://summerofcode.withgoogle.com/programs/2022/organizations/osgeo-open-source-geospatial-foundation projects]:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;   border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#D7E3D1; font-size:95%; empty-cells:show;&amp;quot; &lt;br /&gt;
|'''Project Logo'''&lt;br /&gt;
|'''Community'''&lt;br /&gt;
|'''Project'''&lt;br /&gt;
|'''Student'''&lt;br /&gt;
|'''1st mentor'''&lt;br /&gt;
|'''2nd mentor'''&lt;br /&gt;
|'''Other Mentors'''&lt;br /&gt;
|'''Wiki page'''&lt;br /&gt;
|'''Repository'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:ZOO-Project-mini.png|40px|center]]&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|ZOO-Project - Adding Cesium support within MapMint&lt;br /&gt;
|[[User:Bsolanki|Bhupendra Solanki]]&lt;br /&gt;
|[[User:Aditi_Sawant|Aditi Sawant]]&lt;br /&gt;
|[[User:Djay|Gérald Fenoy]]&lt;br /&gt;
|[[User:RajatShinde|Rajat Shinde]]&lt;br /&gt;
|https://github.com/bhupendra1324/mapmint/wiki/ZOO-Project---Adding-Cesium-support-within-MapMint&lt;br /&gt;
|https://github.com/bhupendra1324/mapmint&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Pgrouting-logo.png|40px|center]]&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Osgeo[Pgrouting] : Add Google OR Tools functionality in Vrprouting&lt;br /&gt;
|[[User:RisingKnight|Manas]]&lt;br /&gt;
|[[User:Krashish8|Ashish Kumar]]&lt;br /&gt;
|[[User:Cvvergara|Celia Virginia Vergara Castillo]]&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/pgRouting/pgrouting/wiki/Add-Google-OR-Tools-functionality-in-vrpRouting&lt;br /&gt;
|https://github.com/Manas23601/GSoC-pgRouting?organization=Manas23601&amp;amp;organization=Manas23601&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:ZOO-Project-mini.png|40px|center]]&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Adding Node.js support for service implementation to the ZOO-Kernel&lt;br /&gt;
|[[User:Mmomtchev|Momtchil Momtchev]]&lt;br /&gt;
|[[User:RajatShinde|Rajat Shinde]]&lt;br /&gt;
|[[User:Djay|Gérald Fenoy]]&lt;br /&gt;
|[[User:Aditi_Sawant|Aditi Sawant]]&lt;br /&gt;
|[[GSoC 2022 Node.js for ZOO-Project]]&lt;br /&gt;
|https://github.com/mmomtchev/ZOO-Project&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Pgrouting-logo.png|40px|center]]&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementing hawick_circuits algorithm from Boost Graph Library to pgRouting&lt;br /&gt;
|[[User:Nitish|Nitish Chauhan]]&lt;br /&gt;
|[[User:Veenits123|Veenit Kumar]]&lt;br /&gt;
|[[User:Danielkastl|Daniel Kastl]]&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/pgRouting/pgrouting/wiki/GSoC-2022-Implementing-hawick_circuits-algorithm-from-Boost-Graph-Library-to-pgRouting&lt;br /&gt;
|https://github.com/nitishchauhan0022/GSoC-pgRouting&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:ZOO-Project-mini.png|40px|center]]&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Integrating ZOO-services with QGIS&lt;br /&gt;
|[[User:Sdhoundiyal|Sandeepan Dhoundiyal]]&lt;br /&gt;
|[[User:Djay|Gérald Fenoy]]&lt;br /&gt;
|[[User:Aditi_Sawant|Aditi Sawant]]&lt;br /&gt;
|[[User:RajatShinde|Rajat Shinde]]&lt;br /&gt;
|https://github.com/sdhoundiyal/GSoC_ZOO-Project/wiki/Integrating-ZOO-Services-with-QGIS&lt;br /&gt;
|https://github.com/sdhoundiyal/GSoC_ZOO-Project&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Pgrouting-logo.png|40px|center]]&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementing Various Functionalities to Calculate Important Graph Metrics in pgRouting&lt;br /&gt;
|[[User:sbdtu5498|Sanskar Bhushan]]&lt;br /&gt;
|[[User:Cvvergara|Celia Virginia Vergara Castillo]]&lt;br /&gt;
|[[User:Krashish8|Ashish Kumar]]&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/pgRouting/pgrouting/wiki/GSoC-2022-Implementing-Various-Functionalities-to-Calculate-Important-Graph-Metrics-in-pgRouting&lt;br /&gt;
|https://github.com/sbdtu5498/GSoC-pgRouting&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Pgrouting-logo.png|40px|center]]&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implement Cuthill-Mckee Ordering Boost Graph Library Algorithm for pgRouting&lt;br /&gt;
|[[User:Shobhit|Shobhit Chaurasia]]&lt;br /&gt;
|[[User:Danielkastl|Daniel Kastl]]&lt;br /&gt;
|[[User:Veenits123|Veenit Kumar]]&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/pgRouting/pgrouting/wiki/GSoC-2022-Implement-Cuthill-Mckee-Ordering-Algorithm-for-pgRouting-by-the-Boost-Graph-Library&lt;br /&gt;
|https://github.com/shobhit162/GSoC-pgRouting&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Mmomtchev</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=GSoC_2022_Node.js_for_ZOO-Project&amp;diff=128610</id>
		<title>GSoC 2022 Node.js for ZOO-Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=GSoC_2022_Node.js_for_ZOO-Project&amp;diff=128610"/>
		<updated>2022-06-12T20:54:26Z</updated>

		<summary type="html">&lt;p&gt;Mmomtchev: Import the github markdown&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;zoo-project-gsoc-2022-proposal-by-mmomtchev&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= ZOO-Project GSoC 2022 Proposal by @mmomtchev =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;adding-node.js-support-for-service-implementation-to-be-run-from-the-zoo-kernel&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Adding Node.js support for service implementation to be run from the ZOO-Kernel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;abstract&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Abstract =&lt;br /&gt;
&lt;br /&gt;
The ZOO-Project is a solid WPS server able to handle services implemented in various different programming languages. The existing &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt; supports C, C++, and JS implementations with the SpiderMonkey engine. With this project, the objective is to add support for NodeJS implementation of the &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Mentors: Gérald Fenoy, Aditi Sawant, Rajat Shinde&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;contributor-personal-details&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Contributor Personal Details =&lt;br /&gt;
&lt;br /&gt;
Momtchil Momtchev [mailto:momtchil@momtchev.com momtchil@momtchev.com], France +33611640937 https://github.com/mmomtchev https://twitter.com/mmomtchev https://mmomtchev.medium.com&lt;br /&gt;
&lt;br /&gt;
Graduated from the Université des Sciences et des Technologies de Lille with a French DEA in Computer Science (Master’s equivalent)&lt;br /&gt;
&lt;br /&gt;
Currently unemployed and looking for job in open-source&lt;br /&gt;
&lt;br /&gt;
First time applicant to GSoC&lt;br /&gt;
&lt;br /&gt;
Co-author and current maintainer of the Node.js bindings for GDAL (https://github.com/mmomtchev/node-gdal-async)&lt;br /&gt;
&lt;br /&gt;
Author of the React bindings for OpenLayers (https://github.com/mmomtchev/rlayers)&lt;br /&gt;
&lt;br /&gt;
Author of the Node.js bindings for ExprTk (https://github.com/mmomtchev/exprtk.js)&lt;br /&gt;
&lt;br /&gt;
Occasional Node.js and GDAL contributor&lt;br /&gt;
&lt;br /&gt;
Author of numerous smaller packages and tools (https://www.npmjs.com/~mmomtchev)&lt;br /&gt;
&lt;br /&gt;
Expert C/C++ and JS/TS engineer with Linux, macOS and Windows experience&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;existing-software&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Existing Software =&lt;br /&gt;
&lt;br /&gt;
Currently ZOO-Project supports JS services through the embedded version of the SpiderMonkey engine. It is linked as a shared library and every invocation of a service results in a separate instance of the SpiderMonkey engine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;proposed-solution&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Proposed Solution =&lt;br /&gt;
&lt;br /&gt;
The current latest LTS version of Node.js, Node.js 16.x, is to be embedded in the &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt; executable following the same architecture as SpiderMonkey.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that the next LTS version of Node.js, Node.js 18 is scheduled to be released during the GSoC timeline. As this version is not expected to replace the 16.x as recommended version until October 2022, it is believed that Node.js 16.x remains the safer choice.&lt;br /&gt;
&lt;br /&gt;
Node.js supports being built as a shared library since version 12.x. This feature is used by the Electron project which is its main maintainer. It allows the JS runtime to be loaded inside the address space of the calling program and to both call JS functions from the native code and expose native functions to the JS code.&lt;br /&gt;
&lt;br /&gt;
There are several different interfaces available for interacting with the Node.js runtime:&lt;br /&gt;
&lt;br /&gt;
* By calling raw internal V8 and Node.js methods which are usually not stable across different versions&lt;br /&gt;
* By using the [https://github.com/nodejs/nan NAN C++ API] C++ which is stable at the source level across different versions&lt;br /&gt;
* By using the [https://nodejs.org/api/n-api.html Node C N-API] which is stable at the binary level across different versions&lt;br /&gt;
* By using the [https://github.com/nodejs/node-addon-api Node Addon C++ API] which is stable at the binary level across different versions&lt;br /&gt;
&lt;br /&gt;
Of these methods, the Node C N-API seems to be the best suited for ZOO-Project as it is binary stable across different Node.js versions and it does not require C++.&lt;br /&gt;
&lt;br /&gt;
It should be noted that while these APIs/ABIs are usually meant to be used by native addons that are loaded by the main Node.js process as a shared library, they are also perfectly usable in the opposite direction - ie when Node.js is loaded as a shared library by a 3rd party process.&lt;br /&gt;
&lt;br /&gt;
Node.js supports running multiple V8 isolates, each with a separate main thread, offering a completely separate execution environment to each JS instance.&lt;br /&gt;
&lt;br /&gt;
These separate instances have separate event loops but can share the same worker thread pool.&lt;br /&gt;
&lt;br /&gt;
This mode of embedding Node.js matches most closely the existing JS architecture based on SpiderMonkey. It is also the preferred mode for embedding Node.js.&lt;br /&gt;
&lt;br /&gt;
The following alternatives have also been considered: * Run every instance of a service in a separate, external, Node.js process This mode will have a more expensive startup and will present unique challenges when implementing the various ZOO-Project routines which will have to communicate with the &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt; by some external mechanism - such as RabbitMQ. * Run all instances of a service in a single shared environment This mode offers the potentially best performance but it imposes upon the end-user to use very correctly the Node.js asynchronous mechanisms - failing to do so will result in latency spikes and possibly dropped connections.&lt;br /&gt;
&lt;br /&gt;
Rebuilding &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; as part of the &amp;lt;code&amp;gt;ZOO-Project&amp;lt;/code&amp;gt; build system is considered to be out of the scope of the current project - just as the current SpiderMonkey shared library is expected to be provided by the end-user, so will be &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; which is already carried by some major Linux distributions - Ubuntu being one of them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;testing-methodology&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Testing methodology =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ZOO-Project&amp;lt;/code&amp;gt; already has an existing testing framework which includes the SpiderMonkey services. The new Node.js implementation is to be able to run those services passing the existing SpiderMonkey tests without modifying the services code.&lt;br /&gt;
&lt;br /&gt;
Additionally, an &amp;lt;code&amp;gt;AddressSanitizer&amp;lt;/code&amp;gt; build, currently absent from &amp;lt;code&amp;gt;ZOO-Project&amp;lt;/code&amp;gt; is one of the stretch goals of the proposal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;proposal-timeline&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Proposal Timeline =&lt;br /&gt;
&lt;br /&gt;
I am fully committed to working on this project during this time period and I am free of any other professional obligations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;before-june-13&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Before June 13 ==&lt;br /&gt;
&lt;br /&gt;
* To familiarize myself completely with ZOO-Project functionality and architecture.&lt;br /&gt;
* To experiment with using &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt;, the embedded version of NodeJS and test the compatibility between the packaged &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; by the Linux distributions and the existing Node.js native addons&lt;br /&gt;
&amp;lt;span id=&amp;quot;june-13---july-25&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== June 13 - July 25 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;june-13---june-17&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== June 13 - June 17 ===&lt;br /&gt;
&lt;br /&gt;
* Implement the creation of the &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; context in &amp;lt;code&amp;gt;service_internal_nodejs.c&amp;lt;/code&amp;gt; to be called from &amp;lt;code&amp;gt;zoo_service_loader.c:loadServiceAndRun()&amp;lt;/code&amp;gt;&lt;br /&gt;
* Include &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;ZOO-Kernel&amp;lt;/code&amp;gt; build and link against it in the official Dockerfile&lt;br /&gt;
* Use a dummy static JS method&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;june-20---june-24&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== June 20 - June 24 ===&lt;br /&gt;
&lt;br /&gt;
* Test building with the versions included Ubuntu, Debian, CentOS and Fedora&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;june-27---july-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== June 27 - July 1 ===&lt;br /&gt;
&lt;br /&gt;
* Implement &amp;lt;code&amp;gt;ZOORequest&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ZOOTranslate&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ZOOUpdateStatus&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;alert&amp;lt;/code&amp;gt; using Node N-API&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-4---july-8&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== July 4 - July 8 ===&lt;br /&gt;
&lt;br /&gt;
* Implement the object and the array transforms using Node N-API&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-11---july-15&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== July 11 - July 15 ===&lt;br /&gt;
&lt;br /&gt;
* Load the existing 3rd party code - mostly &amp;lt;code&amp;gt;proj4js&amp;lt;/code&amp;gt; into the environment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-18---july-22&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== July 18 - July 22 ===&lt;br /&gt;
&lt;br /&gt;
* Spare week for testing and debugging&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-25---july-29&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== July 25 - July 29 ==&lt;br /&gt;
&lt;br /&gt;
* Phase 1 evaluation: the existing SpiderMonkey unit tests should be passing on Node.js at this point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;july-29---september-4&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== July 29 - September 4 ==&lt;br /&gt;
&lt;br /&gt;
Stretch goals&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-1---august-5&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 1 - August 5 ===&lt;br /&gt;
&lt;br /&gt;
* Add builtin Node.js GDAL support&lt;br /&gt;
* Allow JS services to use &amp;lt;code&amp;gt;gdal-async&amp;lt;/code&amp;gt; out of the box&lt;br /&gt;
* Reimplement the GDAL profile C++ service in JS as an example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-8---august-12&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 8 - August 12 ===&lt;br /&gt;
&lt;br /&gt;
* Create and automate an &amp;lt;code&amp;gt;AddressSanitizer&amp;lt;/code&amp;gt; build to be run in continuous integration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-15---august-19&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 15 - August 19 ===&lt;br /&gt;
&lt;br /&gt;
* Allow services to request to be executed in a single-instance mode by providing an &amp;lt;code&amp;gt;async&amp;lt;/code&amp;gt; function as entry point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-22---august-26&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 22 - August 26 ===&lt;br /&gt;
&lt;br /&gt;
* Add snapshot support to &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt; - it could benefit from having the same V8 snapshot support as the Node.js main executable. V8 supports creating and restoring snapshots of a JS heap - this feature is used by Node.js to speed-up the initial loading of the JS class library - instead of compiling it at every process startup, it is compiled and initialized once during the build of the Node.js executable and then the JS heap is saved in a snapshot to be reused when launching Node.js. Currently, this feature is not readily available when using &amp;lt;code&amp;gt;libnode&amp;lt;/code&amp;gt;. Electron re-implements it on its own. This is to be submitted for merging back in Node.js.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;august-29---september-2&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== August 29 - September 2 ===&lt;br /&gt;
&lt;br /&gt;
* Spare week for testing and debugging&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;after-september-4&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== After September 4 ==&lt;br /&gt;
&lt;br /&gt;
* Phase 2 evaluation&lt;/div&gt;</summary>
		<author><name>Mmomtchev</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User:Mmomtchev&amp;diff=128609</id>
		<title>User:Mmomtchev</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User:Mmomtchev&amp;diff=128609"/>
		<updated>2022-06-12T20:49:58Z</updated>

		<summary type="html">&lt;p&gt;Mmomtchev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSGeo Member&lt;br /&gt;
|Name=Momtchil Momtchev&lt;br /&gt;
|JobTitle=Unemployed&lt;br /&gt;
|Company=&lt;br /&gt;
|Address=&lt;br /&gt;
|Country=France&lt;br /&gt;
|State=&lt;br /&gt;
|City=Paris&lt;br /&gt;
|Coordinate=48.820203, 2.364019&lt;br /&gt;
|LocalChapter=France&lt;br /&gt;
|Email=momtchil AT momtchev DOT com&lt;br /&gt;
|SocialMedia=https://github.com/mmomtchev&lt;br /&gt;
|Website=https://github.com/mmomtchev&lt;br /&gt;
|Photo=Mmomtchev.jpg&lt;br /&gt;
|Languages=English, French, Bulgarian, some Russian&lt;br /&gt;
|Info= .&lt;br /&gt;
* Contributor - [[GSoC 2022 Node.js for ZOO-Project]]&lt;br /&gt;
* Current maintainer the GDAL bindings for Node.js - https://github.com/mmomtchev/node-gdal-async&lt;br /&gt;
* Occasional GDAL contributor&lt;br /&gt;
* Author of the React components for OpenLayers - https://github.com/mmomtchev/rlayers&lt;br /&gt;
* Unemployed because of a huge judicial scandal&lt;br /&gt;
}}&lt;br /&gt;
{{OSGeo Experience&lt;br /&gt;
|User=Yes&lt;br /&gt;
|Committee=No&lt;br /&gt;
|Board=No&lt;br /&gt;
|Coder=Yes&lt;br /&gt;
|Translate=No&lt;br /&gt;
|PSC=No&lt;br /&gt;
|ExBoard=No&lt;br /&gt;
|Charter=No&lt;br /&gt;
|Chair=No&lt;br /&gt;
|SolKatz=No&lt;br /&gt;
|Committer=No&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mmomtchev</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2022_Accepted&amp;diff=128603</id>
		<title>Google Summer of Code 2022 Accepted</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2022_Accepted&amp;diff=128603"/>
		<updated>2022-06-10T21:19:37Z</updated>

		<summary type="html">&lt;p&gt;Mmomtchev: Add mmomtchev's links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:GSoC2016Logo.jpg|400px|link=https://developers.google.com/open-source/gsoc/]] &amp;lt;font size=&amp;quot;+3&amp;quot;&amp;gt; @ &amp;lt;/font&amp;gt; &lt;br /&gt;
[[Image:Osgeo-logo.png|300px|link=http://www.osgeo.org]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Back to the main OSGeo [[Google Summer of Code 2022]] @ OSGeo wiki page.&lt;br /&gt;
&lt;br /&gt;
== Accepted Proposals ==&lt;br /&gt;
&lt;br /&gt;
This year OSGeo accepted 7 contributors working on the following [https://summerofcode.withgoogle.com/programs/2022/organizations/osgeo-open-source-geospatial-foundation projects]:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;   border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#D7E3D1; font-size:95%; empty-cells:show;&amp;quot; &lt;br /&gt;
|'''Project Logo'''&lt;br /&gt;
|'''Community'''&lt;br /&gt;
|'''Project'''&lt;br /&gt;
|'''Student'''&lt;br /&gt;
|'''1st mentor'''&lt;br /&gt;
|'''2nd mentor'''&lt;br /&gt;
|'''Other Mentors'''&lt;br /&gt;
|'''Wiki page'''&lt;br /&gt;
|'''Repository'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:ZOO-Project-mini.png|40px|center]]&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|ZOO-Project - Adding Cesium support within MapMint&lt;br /&gt;
|Bhupendra Solanki&lt;br /&gt;
|[[User:Aditi_Sawant|Aditi Sawant]]&lt;br /&gt;
|[[User:Djay|Gérald Fenoy]]&lt;br /&gt;
|[[User:RajatShinde|Rajat Shinde]]&lt;br /&gt;
|https://github.com/bhupendra1324/mapmint/wiki/ZOO-Project---Adding-Cesium-support-within-MapMint&lt;br /&gt;
|https://github.com/bhupendra1324/mapmint&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Pgrouting-logo.png|40px|center]]&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Osgeo[Pgrouting] : Add Google OR Tools functionality in Vrprouting&lt;br /&gt;
|[[User:RisingKnight|Manas]]&lt;br /&gt;
|[[User:Krashish8|Ashish Kumar]]&lt;br /&gt;
|[[User:Cvvergara|Celia Virginia Vergara Castillo]]&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/pgRouting/pgrouting/wiki/Add-Google-OR-Tools-functionality-in-vrpRouting&lt;br /&gt;
|https://github.com/Manas23601/GSoC-pgRouting?organization=Manas23601&amp;amp;organization=Manas23601&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:ZOO-Project-mini.png|40px|center]]&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Adding Node.js support for service implementation to the ZOO-Kernel&lt;br /&gt;
|[[User:Mmomtchev|Momtchil Momtchev]]&lt;br /&gt;
|[[User:RajatShinde|Rajat Shinde]]&lt;br /&gt;
|[[User:Djay|Gérald Fenoy]]&lt;br /&gt;
|[[User:Aditi_Sawant|Aditi Sawant]]&lt;br /&gt;
|https://github.com/mmomtchev/mmomtchev/blob/master/ZOO-Project-mmomtchev-GSOC-2022.md&lt;br /&gt;
|https://github.com/mmomtchev/ZOO-Project&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Pgrouting-logo.png|40px|center]]&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementing hawick_circuits algorithm from Boost Graph Library to pgRouting&lt;br /&gt;
|[[User:Nitish|Nitish Chauhan]]&lt;br /&gt;
|[[User:Veenits123|Veenit Kumar]]&lt;br /&gt;
|[[User:Danielkastl|Daniel Kastl]]&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/pgRouting/pgrouting/wiki/GSoC-2022-Implementing-hawick_circuits-algorithm-from-Boost-Graph-Library-to-pgRouting&lt;br /&gt;
|https://github.com/nitishchauhan0022/GSoC-pgRouting&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:ZOO-Project-mini.png|40px|center]]&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Integrating ZOO-services with QGIS&lt;br /&gt;
|[[User:Sdhoundiyal|Sandeepan Dhoundiyal]]&lt;br /&gt;
|[[User:Djay|Gérald Fenoy]]&lt;br /&gt;
|[[User:Aditi_Sawant|Aditi Sawant]]&lt;br /&gt;
|[[User:RajatShinde|Rajat Shinde]]&lt;br /&gt;
|https://github.com/sdhoundiyal/GSoC_ZOO-Project/wiki/Integrating-ZOO-Services-with-QGIS&lt;br /&gt;
|https://github.com/sdhoundiyal/GSoC_ZOO-Project&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Pgrouting-logo.png|40px|center]]&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementing Various Functionalities to Calculate Important Graph Metrics in pgRouting&lt;br /&gt;
|Sanskar Bhushan&lt;br /&gt;
|[[User:Cvvergara|Celia Virginia Vergara Castillo]]&lt;br /&gt;
|[[User:Krashish8|Ashish Kumar]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Image:Pgrouting-logo.png|40px|center]]&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implement Cuthill-Mckee Ordering Boost Graph Library Algorithm for pgRouting&lt;br /&gt;
|[[User:Shobhit|Shobhit Chaurasia]]&lt;br /&gt;
|[[User:Danielkastl|Daniel Kastl]]&lt;br /&gt;
|[[User:Veenits123|Veenit Kumar]]&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/pgRouting/pgrouting/wiki/GSoC-2022-Implement-Cuthill-Mckee-Ordering-Algorithm-for-pgRouting-by-the-Boost-Graph-Library&lt;br /&gt;
|https://github.com/shobhit162/GSoC-pgRouting&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Mmomtchev</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User:Mmomtchev&amp;diff=128509</id>
		<title>User:Mmomtchev</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User:Mmomtchev&amp;diff=128509"/>
		<updated>2022-05-27T21:03:03Z</updated>

		<summary type="html">&lt;p&gt;Mmomtchev: first version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSGeo Member&lt;br /&gt;
|Name=Momtchil Momtchev&lt;br /&gt;
|JobTitle=Unemployed&lt;br /&gt;
|Company=&lt;br /&gt;
|Address=&lt;br /&gt;
|Country=France&lt;br /&gt;
|State=&lt;br /&gt;
|City=Paris&lt;br /&gt;
|Coordinate=48.820203, 2.364019&lt;br /&gt;
|LocalChapter=France&lt;br /&gt;
|Email=momtchil AT momtchev DOT com&lt;br /&gt;
|SocialMedia=https://github.com/mmomtchev&lt;br /&gt;
|Website=https://github.com/mmomtchev&lt;br /&gt;
|Photo=Mmomtchev.jpg&lt;br /&gt;
|Languages=English, French, Bulgarian, some Russian&lt;br /&gt;
|Info= .&lt;br /&gt;
* GSoC 2022 contributor for ZOO-Project&lt;br /&gt;
* Current maintainer the GDAL bindings for Node.js - https://github.com/mmomtchev/node-gdal-async&lt;br /&gt;
* Occasional GDAL contributor&lt;br /&gt;
* Author of the React components for OpenLayers - https://github.com/mmomtchev/rlayers&lt;br /&gt;
* Unemployed because of a huge judicial scandal&lt;br /&gt;
}}&lt;br /&gt;
{{OSGeo Experience&lt;br /&gt;
|User=Yes&lt;br /&gt;
|Committee=No&lt;br /&gt;
|Board=No&lt;br /&gt;
|Coder=Yes&lt;br /&gt;
|Translate=No&lt;br /&gt;
|PSC=No&lt;br /&gt;
|ExBoard=No&lt;br /&gt;
|Charter=No&lt;br /&gt;
|Chair=No&lt;br /&gt;
|SolKatz=No&lt;br /&gt;
|Committer=No&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mmomtchev</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Mmomtchev.jpg&amp;diff=128508</id>
		<title>File:Mmomtchev.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Mmomtchev.jpg&amp;diff=128508"/>
		<updated>2022-05-27T20:53:05Z</updated>

		<summary type="html">&lt;p&gt;Mmomtchev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Momtchil Momtchev&lt;/div&gt;</summary>
		<author><name>Mmomtchev</name></author>
	</entry>
</feed>