Skip to main content
Top

2018 | OriginalPaper | Chapter

Improving C/C++ Open Source Software Discoverability by Utilizing Rust and Node.js Ecosystems

Authors : Kyriakos-Ioannis D. Kyriakou, Nikolaos D. Tselikas, Georgia M. Kapitsaki

Published in: Open Source Systems: Enterprise Software and Solutions

Publisher: Springer International Publishing

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Discovering Open Source Software (OSS) components efficiently is not always an easy task. Node.js is a popular JavaScript runtime environment, whereas Rust is widely used for system programming, and both can be utilized for OSS discovery purposes. In this work, we examine whether Rust and Node.js can be used, along with their respective tooling and package repositories, in order to achieve improved discoverability of existing OSS implemented in C/C++. The paper describes how the capabilities of Rust in C/C++ interoperability can be combined with novel compilation techniques of low-level code to asm.js and WebAssembly, in order to harness JavaScript’s popularity as the medium to publicize hard to discover C/C++ OSS. A proposed incremental methodology is presented and the main, as well as the collateral, effects of enforcing the proposed methodology in a proof-of-concept situation are examined. Our findings indicate potential increase in discoverability, code quality, portability, along with viable performance degradation of portable binaries, demonstrating 8.7 times slower execution compared to machine code, in a worst-case scenario.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literature
6.
go back to reference Sojer, M., Henkel, J.: Code reuse in open source software development: quantitative evidence, drivers, and impediments (2010)CrossRef Sojer, M., Henkel, J.: Code reuse in open source software development: quantitative evidence, drivers, and impediments (2010)CrossRef
8.
go back to reference Letz, S., Denoux, S., Orlarey, Y., Fober, D.: Faust audio DSP language in the Web. In: Proceedings of the Linux Audio Conference (LAC-15), Mainz, Germany, April 2015 Letz, S., Denoux, S., Orlarey, Y., Fober, D.: Faust audio DSP language in the Web. In: Proceedings of the Linux Audio Conference (LAC-15), Mainz, Germany, April 2015
9.
go back to reference Zbyszyński, M., Grierson, M., Fedden, L., Yee-King, M.: Write once run anywhere revisited: machine learning and audio tools in the browser with C++ and emscripten (2017) Zbyszyński, M., Grierson, M., Fedden, L., Yee-King, M.: Write once run anywhere revisited: machine learning and audio tools in the browser with C++ and emscripten (2017)
10.
go back to reference Leclerc, G., Auerbach, J.E., Iacca, G., Floreano, D.: The seamless peer and cloud evolution framework. In: Proceedings of the Genetic and Evolutionary Computation Conference 2016, pp. 821–828. ACM, July 2016 Leclerc, G., Auerbach, J.E., Iacca, G., Floreano, D.: The seamless peer and cloud evolution framework. In: Proceedings of the Genetic and Evolutionary Computation Conference 2016, pp. 821–828. ACM, July 2016
11.
go back to reference Lin, Y., Blackburn, S.M., Hosking, A.L., Norrish, M.: Rust as a language for high performance GC implementation. In: Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management, pp. 89–98. ACM, June 2016 Lin, Y., Blackburn, S.M., Hosking, A.L., Norrish, M.: Rust as a language for high performance GC implementation. In: Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management, pp. 89–98. ACM, June 2016
12.
go back to reference Blanco-Cuaresma, S., Bolmont, E.: What can the programming language Rust do for astrophysics? Proc. Int. Astron. Union 12(S325), 341–344 (2016)CrossRef Blanco-Cuaresma, S., Bolmont, E.: What can the programming language Rust do for astrophysics? Proc. Int. Astron. Union 12(S325), 341–344 (2016)CrossRef
14.
15.
go back to reference Chaniotis, I.K., Kyriakou, K.I.D., Tselikas, N.D.: Is Node.js a viable option for building modern web applications? A performance evaluation study. Computing 97(10), 1023–1044 (2015)MathSciNetCrossRef Chaniotis, I.K., Kyriakou, K.I.D., Tselikas, N.D.: Is Node.js a viable option for building modern web applications? A performance evaluation study. Computing 97(10), 1023–1044 (2015)MathSciNetCrossRef
16.
go back to reference Kyriakou, K.I.D., Chaniotis, I.K., Tselikas, N.D.: The GPM meta-transcompiler: harmonizing JavaScript-oriented Web development with the upcoming ECMAScript 6 “Harmony” specification. In: 12th Annual IEEE Consumer Communications and Networking Conference (CCNC), Las Vegas, NV, USA, pp. 176–181 (2015) Kyriakou, K.I.D., Chaniotis, I.K., Tselikas, N.D.: The GPM meta-transcompiler: harmonizing JavaScript-oriented Web development with the upcoming ECMAScript 6 “Harmony” specification. In: 12th Annual IEEE Consumer Communications and Networking Conference (CCNC), Las Vegas, NV, USA, pp. 176–181 (2015)
17.
go back to reference Bissyandé, T.F., Thung, F., Lo, D., Jiang, L., Réveillere, L.: Popularity, interoperability, and impact of programming languages in 100,000 open source projects. In: 2013 IEEE 37th Annual Computer Software and Applications Conference (COMPSAC), pp. 303–312. IEEE, July 2013 Bissyandé, T.F., Thung, F., Lo, D., Jiang, L., Réveillere, L.: Popularity, interoperability, and impact of programming languages in 100,000 open source projects. In: 2013 IEEE 37th Annual Computer Software and Applications Conference (COMPSAC), pp. 303–312. IEEE, July 2013
18.
go back to reference Crockford, D.: JavaScript: The Good Parts: The Good Parts. O’Reilly Media, Inc., Sebastopol (2008) Crockford, D.: JavaScript: The Good Parts: The Good Parts. O’Reilly Media, Inc., Sebastopol (2008)
19.
go back to reference Daloze, B., Marr, S., Bonetta, D., Mössenböck, H.: Efficient and thread-safe objects for dynamically-typed languages. In: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 642–659 (2016)CrossRef Daloze, B., Marr, S., Bonetta, D., Mössenböck, H.: Efficient and thread-safe objects for dynamically-typed languages. In: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 642–659 (2016)CrossRef
33.
go back to reference Dietz, W., Li, P., Regehr, J., Adve, V.: Understanding integer overflow in C/C++. ACM Trans. Softw. Eng. Methodol. (TOSEM), 25(1), article 2 (2015)CrossRef Dietz, W., Li, P., Regehr, J., Adve, V.: Understanding integer overflow in C/C++. ACM Trans. Softw. Eng. Methodol. (TOSEM), 25(1), article 2 (2015)CrossRef
34.
go back to reference Tselikis, G.S., Tselikas, N.D.: C: From Theory to Practice, 2nd edn. CRC Press, Boca Raton (2017) Tselikis, G.S., Tselikas, N.D.: C: From Theory to Practice, 2nd edn. CRC Press, Boca Raton (2017)
38.
go back to reference Zakai, A.: Emscripten: an LLVM-to-JavaScript compiler. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, pp. 301–312. ACM, October 2011 Zakai, A.: Emscripten: an LLVM-to-JavaScript compiler. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, pp. 301–312. ACM, October 2011
39.
go back to reference Rossberg, A.: WebAssembly: high speed at low cost for everyone. In: ML16: Proceedings of the 2016 ACM SIGPLAN Workshop on ML (2016) Rossberg, A.: WebAssembly: high speed at low cost for everyone. In: ML16: Proceedings of the 2016 ACM SIGPLAN Workshop on ML (2016)
Metadata
Title
Improving C/C++ Open Source Software Discoverability by Utilizing Rust and Node.js Ecosystems
Authors
Kyriakos-Ioannis D. Kyriakou
Nikolaos D. Tselikas
Georgia M. Kapitsaki
Copyright Year
2018
DOI
https://doi.org/10.1007/978-3-319-92375-8_15

Premium Partner