-
Notifications
You must be signed in to change notification settings - Fork 17.7k
ResearchPapers
This page lists academic and industry research papers about Go or using Go as the implementation language.
-
Understanding Real-World Concurrency Bugs in Go (Tu, Liu, Song, Zhang)
-
An empirical study of messaging passing concurrency in Go projects (N. Dilley, J. Lange)
-
A comparison of three programming languages for a full-fledged next-generation sequencing tool (Costanza, Herzeel, Verachtert)
-
Exploring polyglot software frameworks in ALICE with FairMQ and fer
-
Flash: Efficient Dynamic Routing for Offchain Networks
-
RepChain: A Reputation based Secure, Fast and High Incentive Blockchain System via Sharding
-
Drynx: Decentralized, Secure, Verifiable System for Statistical Queries and Machine Learning on Distributed Datasets
-
Implementation and evaluation of secure and scalable anomaly-based network intrusion detection (P. Mieden)
-
ProIO: An Event-Based I/O Stream Format for Protobuf Messages (D. Blyth, J. Alcaraz, S. Binet, S.V. Chekanov)
-
The latest gossip on BFT consensus (Buchman, Kwon, Milosevic)
-
Distributed Programming using Role-Parametric Session Types in Go (Castro, Hu, Jongmans, NG, Yoshida)
-
Observing the Evolution of QUIC Implementations, (Piraux, De Coninck, Bonaventure)
-
Cody Cutler, M. Frans Kaashoek, and Robert T. Morris, "The benefits and costs of writing a POSIX kernel in a high-level language"
-
Voit, Sebastian Peter Johann. "Writing Network Drivers in Go."
-
"MoonShine: Optimizing OS Fuzzer Seed Selection with Trace Distillation" (Shankara Pailoor, Andrew Aday, Suman Jana) USENIX Security 2018
-
"Process-Local Static Analysis of Synchronous Processes" (Jan Midtgaard, Flemming Nielson, Hanne Riis Nielson) SAS 2018
-
"Inferring and Asserting Distributed System Invariants" (Stewart Grant, Hendrik Cech, Ivan Beschastnikh) ICSE 2018 Technical Papers
- bitbucket.org/bestchai/dinv/ "DInv is a distributed system data invariant detector" ; "DInv is written in go lang"
-
"Revisiting the Vector Space Model: Sparse Weighted Nearest-Neighbor Method for Extreme Multi-Label Classification." (Tatsuhiro Aoshima, Kei Kobayashi, Mihoko Minami) arXiv:1802.03938 stat.ML,
- PDF:arXiv:1802.03938-stat.ML
- github.com/hiro4bbh/sticker "...We have published our implementation sticker (Aoshima, 2018) written in Golang (Golang, 2009)..."
- keywords: sticker, machine-learning, classification
-
A Static Verification Framework for Message Passing in Go using Behavioural Types (J. Lange, N. Ng, B. Toninho, N. Yoshida)
- accepted draft at ICSE 2018
- Tool page, sources: godel-checker and Go frontend
-
Finding The Greedy, Prodigal, and Suicidal Contracts at Scale (Ivica Nikolic, Aashish Kolluri, Ilya Sergey, Prateek Saxena, Aquinas Hobor)
- pdf "To implement the validating framework, we added a new functionality to the official go-ethereum package [20] which allows us to fork the Ethereum main chain at a block height of our choice."
-
State of Mutation Testing at Google (Goran Petrovic and Marko Ivankovic)
-
Index Data Structure, Functionality and Microservices in Thematic Virtual Museums (Sajarwo Anggai) (Ph.D. thesis)
-
"Two-Phase Dynamic Analysis of Message-Passing Go Programs based on Vector Clocks" (M. Sulzmann, K. Stadtmueller)
-
"Revisiting the Vector Space Model: Sparse Weighted Nearest-Neighbor Method for Extreme Multi-Label Classification" (Tatsuhiro Aoshima, Kei Kobayashi, Mihoko Minami)
-
"GEEC: Scalable, Efficient, and Consistent Consensus for Blockchains" (Xusheng Chen, Shixiong Zhao, Cheng Wang, Senran Zhang, Heming Cui)
-
"Dependability in a Multi-tenant Multi-framework Deep Learning as-a-Service Platform" (Scott Boag, Parijat Dube, Kaoutar El Maghraoui, Benjamin Herta, Waldemar Hummer, K. R. Jayaram, Rania Khalaf, Vinod Muthusamy, Michael Kalantar, Archit Verma)
-
DRONE: a Distributed Subgraph-Centric Framework for Processing Large Scale Power-law Graphs
-
Reducing Metadata Leakage from Encrypted Files and Communication with PURBs
-
Go-HEP: writing concurrent software with ease and Go (S. Binet)
-
RDFIO: extending Semantic MediaWiki for interoperable biomedical data management (Samuel Lampa, Egon Willighagen, Pekka Kohonen, Ali King, Denny Vrandečić, Roland Grafström, Ola Spjuth) Journal of Biomedical Semantics ( Volume: 8, Issue: 35 )
- DOI: 10.1186/s13326-017-0136-y
- The rdf2smw commandline tool, for batch conversion from RDF to Semantic MediaWiki facts in MediaWiki XML dump format, is written in Go
- github.com/rdfio/rdf2smw
- godoc
- Keywords: Semantic MediaWiki, Semantic Web, RDF
-
Construction and first tests of an in-beam PET demonstrator dedicated to the ballistic control of hadrontherapy treatments with 65 MeV protons (E Busato et al.) IEEE Transactions on Radiation and Plasma Medical Sciences ( Volume: PP, Issue: 99 )
- DOI: 10.1109/TRPMS.2017.2780447
- Monitoring system + parts of the DAQ in Go
- Keywords: Detectors, Particle beams, Protons, Ions, Plasmas, Structural beams, Monitoring
-
Let's Go: a Data-Driven Multi-Threading Support (Alberto Scionti,Somnath Mazumdar) CF'17 Proceedings of the Computing Frontiers Conference
- doi.org/10.1145/3075564.3075596 "... This paper proposes a first attempt to map goroutines on a data-driven based PXM. ..."
- Keywords: Data-driven, Programming language, Multi-threading
-
Estimating Mixture Entropy with Pairwise Distances (Artemy Kolchinsky, Brendan D. Tracey)
-
Towards Omnia: a Monitoring Factory for Quality-Aware DevOps (Marco Miglierina, Damian A. Tamburri)
- doi.org/10.1145/3053600.3053629 ICPE '17 Companion
- github.com/mmiglier/omnia (Go: 52.8% )
- Keywords: Monitoring, Monitoring Management, Monitoring Factory, Monitoring Interface, Monitoring Infrastructure as Code, Monitoring Configuration as Code
-
Copy-on-Reference File Mechanism Extends Scope of Dynamic Reconfiguration (Jeremy Krach) thesis
- github.com/krockpot/lazyfs "Lazy file retrieval for process migration."
-
An event model for phylogenetic biogeography using explicitly geographical ranges (J. Salvador Arias)
- http://onlinelibrary.wiley.com/doi/10.1111/jbi.13024/full
- Computer implementation (EVS written in Go) : github.com/js-arias/evs "Evs is a tool for phylogenetic biogeography. "
-
Feasibility of reusable continuous thrust spacecraft for cargo resupply missions to Mars (C. B. Rabotin) thesis
- github.com/ChristopherRabotin/smd Space Mission Design - A SPICE-enhanced continuous thrust interplanetary mission propagator and vizualizer
- Keywords: space-mission interplanetary-missions celestial-bodies astrodynamics orbit propagation spice
-
Performance testing of open-source HTTP web frameworks in an API (Michael A.P. Domingues) DSIE’17
- https://paginas.fe.up.pt/~prodei/dsie17/DSIE17_Proceedings.pdf#page=18
- Keywords: Revel, Gin and Echo, Performance testing, API, Web frameworks, Apache benchmark
-
Method of auto-configuration for corporate proxies (Andrés Abelardo Villarroel Acosta, Carlos Enrique Montenegro Marín, Paulo Alonso Gaona García, Yuri Vanessa Nieto Acevedo) Ingeniería solidaria, 2017
- https://revistas.ucc.edu.co/index.php/in/article/view/1723
- https://github.com/andresvia/udpac
- Keywords: Proxy Auto-configuration (PAC), Web Proxy Auto-Discovery Protocol (WPAD), Dynamic Host Configuration Protocol (DHCP), Standard Time.
-
NucAmino: a nucleotide to amino acid alignment optimized for virus gene sequences ( Philip L. Tzou, Xiaoqiu Huang, Robert W. Shafer ) BMC Bioinformatics (2017) 18: 138.
- DOI: 10.1186/s12859-017-1555-6 "... NucAmino is written in the computer language Go ..."
- github.com/hivdb/NucAmino ( Go 94.4% )
- Keywords: Sequence alignment, Viruses, HIV-1, Drug resistance, Open source
-
Idiomatic and Reproducible Software Builds using Containers for Reliable Computing (Jonas Weber) Master’s Thesis
-
Structured I/O streams in Clive: a toolbox approach for wide area network computing ( Francisco J. Ballesteros )
- DOI: 10.1186/s13174-016-0054-8 OPEN ACCESS " ... Clive is a system written in Go ..."
- Clive related research
- Clive source "...Clive is an operating system designed to work in distributed and cloud computing environments. ..."
- Keywords: Streams, Input/Output, Operating system, Distributed systems, Cloud computing
-
Towards Practical Default-On Multi-Core Record/Replay ( Ali José Mashtizadeh, Tal Garfinkel, David Terei, David Mazières, Mendel Rosenblum) draft , ASPLOS 2017
- Draft – Accepted at ASPLOS 2017 - PDF "...Castor currently supports applications written in C, C++, and Go on FreeBSD...., ... For Go, we evaluate, Caddy ... "
-
Comparing MapReduce and Pipeline Implementations for Counting Triangles ( Edelmira Pasarella, Maria-Esther Vidal, Cristina Zoltan)
- arXiv:1701.03318 cs.DC
- pdf "... an ad-hoc version of MapReduce are implemented in the language Go ..."
-
Fencing off Go: Liveness and Safety for Channel-based Programming (J. Lange, N. Ng, B. Toninho, N. Yoshida), POPL 2017
-
Design and Implementation of Concurrent C0 (Willsey, Prabhu, Pfenning)
-
Automated Identification of Security Issues from Commit Messages and Bug Reports (Yagin Zhou, Asankhaya Sharma), FSE 2017
-
Reconstructing Program Semantics from Go Binaries (Engelke)
-
An Attempt at Reducing Costs of Disk I/O in Go (Wilson, Mutschlechner)
-
Go-RealTime: A Lightweight Framework for Multiprocessor Real-Time System in User Space (Fang, Luo, Anwar, Zhuang, Gupta)
-
"Secure and Trustable Electronic Medical Records Sharing using Blockchain" (Alevtina Dubovitskaya, Zhigang Xu, Samuel Ryu, Michael Schumacher, Fusheng Wang)
-
"Towards a More Reliable and Available Docker-based Container Cloud" (Mudit Verma, Mohan Dhawan)
- Atom: Horizontally Scaling Strong Anonymity (Albert Kwon, Henry Corrigan-Gibbs, Srinivas Devadas, Bryan Ford)
- arXiv:1612.07841 cs.CR "...We implemented an Atom prototype in Go in approximately 3,500 lines of code, ..."
- The Case for Reconfiguration without Consensus: Comparing Algorithms for Atomic Storage (Leander Jehl, Hein Meling)
- github.com/relab/smartmerge implemented in golang
- Flower : Workflow management and heat-aware scheduling for modern cloud infrastructures (Robert Carosi, Boris Mattijssen) bachelor thesis,
- Implementing a web-based bookingsystem using Go ( Vu, Phi-Long ) Independent thesis Basic level
- Parallelization of the corpus manager’s time-consuming operations (Bc. Radoslav Rábara ) Master's Thesis, Masaryk University
- pdf ; Keywords: Manatee, text corpora, Go, text compression, compression of integers, time-consuming operations, parallelization, MapReduce, Glow, distributed computing, data format, cluster, scalability
- Cyber Security Exercise Modeling & Tracking (Joonas Greis) Bachelor’s thesis
- pdf "... RESTful API was written with Golang using Go-Json-Rest package ..."
- Scalable Byzantine Consensus via Hardware-assisted Secret Sharing (Jian Liu, Wenting Li, Ghassan O. Karame, N. Asokan)
- arXiv:1612.04997 cs.CR ; "... Our implementation is based on Golang ..." ; pdf
- Fast and Reliable Byzantine Fault Tolerance (Eric Scott Freeman) Master's thesis in Computer science
- Formal verification of concurrency in go (Anuchit Prasertsang, Denduang Pradubsuwun)
- Therapeutic target discovery using Boolean network attractors: updates from kali ( Arnaud Poret ) ( Quantitative Biology > Molecular Networks)
- Information Flow Analysis for Go ( Eric Bodden, Ka I. Pun, Martin Steffen, Volker Stolz, Anna-Katharina Wickert)
- A Productivity Checker for Logic Programming (E. Komendantskaya, P. Johann, M. Schmidt )
- arXiv:1608.04415 cs.PL
- project page: http://www.macs.hw.ac.uk/~ek19/CoALP/
- A novel algorithm for detecting multiple covariance and clustering of biological sequences
( Wei Shen & Yan Li) ( Coevolution, Computational models )
- http://www.nature.com/articles/srep30425 , doi:10.1038/srep30425
- Algorithm implementation (golang - only binary ) : http://yanlilab.github.io/fastcov/
- Architecture of the Hyperledger Blockchain Fabric (Christian Cachin)
- Reimagining the Programming Experience ( Mehrdad Afshari , dissertation) GoClr
- MapReduce vs. Pipelining Counting Triangles (Edelmira Pasarella, Maria-Esther Vidal,and Cristina Zoltan)
- Software Engineering with PSF and Go (Erik van der Schaaf) Thesis, University of Amsterdam
- Parametric Polymorphism in the Go Programming Language (Matthew Allen) University of Texas, Turing Scholars honors thesis
- Static Trace-Based Deadlock Analysis for Synchronous Mini-Go ( Kai Stadtmüller, Martin Sulzmann, and Peter Thiemann )
- Continuous Query-Based Syndication: Distributed, Expressive Messaging for the IoT( Gabriel Fierro, Erik Krogen )
- pdf, motivation
- code ( Go and Python implementation )
- Privacy, Discovery, and Authentication for the Internet of Things (Wu, Taly, Shankar, Boneh)
- Static Deadlock Detection for Concurrent Go by Global Session Graph Synthesis (Ng, Yoshida)
- A Small-Step Semantics of a Concurrent Calculus with Goroutines and Deferred Functions ( Martin Steffen )
- Butterfield, Ellis H., "Fog Computing with Go: A Comparative Study" (2016). CMC Senior Theses. Paper 1348.
- An Implementation and Analysis of a Kernel Network Stack in Go with the CSP Style (Harshal Sheth, Aashish Welling)
- PAS-MC: Privacy-preserving Analytics Stream for the Mobile Cloud (Joy, Gerla)
- Developing an Ethereum Blockchain Application (Triantafyllidis)
- Identifying and characterizing Sybils in the Tor network (Winter, Ensafi, Loesing, and Feamster)
- A Distributed Implementation of the Graph Database System: DGraph
- Browsix: Bridging the Gap Between Unix and the Browser (Powers, Vilk, Berger)
- Verification of Goroutines using Why3 (Schoolderman)
- Detection of Bugs and Code Smells through Static Analysis of Go Source Code (Bergersen)
- BTrDB: Optimizing Storage System Design for Timeseries Processing (Andersen, Culler)
- Tinzenite: Encrypted Peer to Peer File Synchronization via the Tox Protocol (Tamino P.S.M. Hartmann) (Master thesis at Ulm University)
- Blade: A Data Center Garbage Collector (Terei, Levy)
- Flywheel: Google's Data Compression Proxy for the Mobile Web (Agababov, Buettner, Chudnovsky, Cogan, Greenstein, McDaniel, Piatek, Scott, Welsh, Yin)
- A Machine Learning Strategy to Assist Turbulence Model Development (Brendan Tracey, Karthik Duraisamy, Juan J. Alonso)
- Implementing an intelligent version of the classical sliding-puzzle game for unix terminals using Golang's concurrency primitives ( Pravendra Singh )
- Keeping Authorities "Honest or Bust" with Decentralized Witness Cosigning (Syta, Tamas, Visher, Wolinsky, Jovanovic, Gasser, Gailly, Khoffi, Ford)
- Message Passing for Programming Languages and Operating Systems (Martynas Pumputis ) Master’s Thesis
- Type inference for Go (Emin Gigovic, Philip Malmros )
- Open-Source, Platform-Independent Library and Online Scripting Environment for Accessing Thermo Scientific RAW Files. (Kelchtermans, Silva, Argentini, Staes, Vandenbussche, Laukens, Valkenborg, Martens)
- Evaluation of performance and productivity metrics of potential programming languages in the HPC environment ( Bachelor Thesis ; Florian Wilkens ) - ( Go, Rust, C, OpenStreetMap )
- Concurrent Processing of Text Corpus Queries (Rábara, Rychlý)
- Automatic Memory Management Techniques for the Go Programming Language (Davis) (Ph.D. thesis)
- Design Muntoi Web-based Framework and Search Engine Analytics for Thematic Virtual Museums (Sajarwo Anggai) (Ph.D. thesis)
- A Search Engine Backed by Internet-Wide Scanning (Durumeric, Adrian, Mirian, Bailey, Halderman)
- An Extract Function Refactoring for the Go Language (Arasu)
- Compositional Decompilation using LLVM IR (BSc thesis, Robin Eklind)
- "U-root: A Go-based, Firmware Embeddable Root File System with On-demand Compilation" (Minnich, Mirtchovski)
- PARAGON: an approach for parallelization of power system contingency analysis using Go programming language
- A Study of Successive Over-relaxation Method Parallelization Over Modern HPC Languages (Mittal)
- There Is More Consensus in Egalitarian Parliaments (Moraru, Andersen, Kaminsky)
- Research Problems of Implementing Go
- bíogo: a simple high-performance bioinformatics toolkit for the Go language (D. Kortschak, D. Adelson)
- P2S: A Fault-Tolerant Publish/Subscribe Infrastructure (Chang, Duan, Meling, Peisert, Zhang)
- Generating a Google Go framework from an Uppaal model (Dekker)
- Using the Go Programming Language in Practice (Westrup, Pettersson)
- A Language Support for Exhaustive Fault-Injection in Message-Passing System Models (Suzuki, Watanabe)
- Big Learning with Bayesian Methods
- Be General and Don't Give Up Consistency in Geo-Replicated Transactional Systems
- The design and verification of Mumax3 (Vansteenkiste, Leliaert, Dvornik, Garcia-Sanchez, Van Waeyenberge)
- Building Reliable and Practical Byzantine Fault Tolerance (Duan)
- GoPar: Automatic Loop Parallelization of Go Programs (Wetherbee)
- SCTP in Go ( Olivier Van Acker )
- Keywords: Stream Control Transmission Protocol (SCTP); Transmission Control Protocol (TCP); Go; Networking;
- Benchmarking Usability and Performance of Multicore Languages ( Sebastian Nanz, Scott West, Kaue Soares da Silveira, Bertrand Meyer)
- Examining the Expert Gap in Parallel Programming (Sebastian Nanz, Scott West, Kaue Soares da Silveira)
- Acropolis: aggregated client request ordering by Paxos (Jothen)
- Implementation and experimental evaluation of live replacement and reconfiguration (Lea)
- Exploiting Parallelism in Coalgebraic Logic Programming (Komendantskaya, Schmidt, Heras)
- Parallel Pattern Discovery (Egon Elbre), Master's Thesis, University of Tartu
- Time Warp on the Go (D'Angelo, Ferretti, Marzolla)
- Can Go address the multicore issues of today and the manycore problems of tomorrow? (S. Binet)
- GoCxx: a tool to easily leverage C++ legacy code for multicore-friendly Go libraries and frameworks (S. Binet)
- The Buffered π-Calculus: A Model for Concurrent Languages (Deng, Zhang, Deng, Zhong)
- Analysis of the Go runtime scheduler (Neil Deshpande,Erica Sponsler,Nathaniel Weiss)
- A Comparative Study of Programming Models for Concurrency ( Kaue Soares da Silveira) – Porto Alegre: COMGRAD CIC UFRGS, 2012. Final Report (Bachelor)
- Debian Code Search (Stapelberg)
- Go’s Concurrency Constructs on the SCC (Prell, Rauber)
- Comparing Parallel Performance of Go and C++ TBB on a Direct Acyclic Task Graph Using a Dynamic Programming Problem (Serfass, Tang)
- ng: What next-generation languages can teach us about HENP frameworks in the manycore era (S. Binet)
- Serving Web Content with Dynamic Process Networks in Go (James Whitehead II)
- GoHotDraw: Evaluating the Go Programming Language with Design Patterns (Schmager, Cameron, Noble)