  Throughput and latency critical applications could often benefit of
performing computations close to the client. To enable this, distributed
computing paradigms such as edge computing have recently emerged. However, with
the advent of programmable data planes, computations cannot only be performed
by servers but they can be offloaded to network switches. Languages like P4
enable to flexibly reprogram the entire packet processing pipeline. Though
these devices promise high throughput and ultra-low response times,
implementing application-layer tasks in the data plane programming language P4
is still challenging for an application developer who is not familiar with
networking domain. In this paper, we first identify and examine obstacles and
pain points one can experience when offloading server-based computations to the
network. Then we present P4RROT, a code generator (in form of a library) which
allows to overcome these limitations by providing a user-friendly API to
describe computations to be offloaded. After discussing the design choices
behind P4RROT, we introduce our proof-of-concept implementation for two P4
targets: Netronome SmartNIC and BMv2.
