CommunityNews

CommunityNews

Pie: A toolkit for creating plugins for Go applications

Why is it called pie?

Because if you pronounce API like “a pie”, then all this consuming and serving of APIs becomes a lot more palatable. Also, pies are the ultimate pluggable interface - depending on what’s inside, you can get dinner, dessert, a snack, or even breakfast. Plus, then I get to say that plugins in Go are as easy as… well, you know.

If you have to explain it to your boss, just say it’s an acronym for Plug In Executables. (but it’s not, really)

About Pie

Plugins using this toolkit and the applications managing those plugins communicate via RPC over the plugin application’s Stdin and Stdout.

Functions in this package with the prefix New are intended to be used by the plugin to set up its end of the communication. Functions in this package with the prefix Start are intended to be used by the main application to set up its end of the communication and start a plugin executable.

This thread was posted by one of our members via one of our news source trackers.

/go

Where Next?

Popular Backend topics Top

First poster: bot
Pijul - The Mathematically Sound Version Control System Written in Rust. In this article, we’ll discuss Pijul - an alpha stage version c...
New
Exadra37
A tool for exploring a docker image, layer contents, and discovering ways to shrink the size of your Docker/OCI image.
New
mudasobwa
Tarearbol provides a handy helper to work with many similar processes under the supervision of Tarearbol.DynamicManager. To build a supe...
New
First poster: bot
An online Zig compiler inspired by Go and Rust. Contribute to gsquire/zig-play development by creating an account on GitHub. https://zi...
New
First poster: bot
Turn (almost) any Python command line program into a full GUI application with one line
New
First poster: bot
Maddy Mail Server implements all functionality required to run a e-mail server. It can send messages via SMTP (works as MTA), accept mess...
New
First poster: GermaVinsmoke
This guide collects some of the most common functions of the Elixir Programming Language and explain them conceptual and graphically in a...
New
fi_mihej
I’ve released “InterProcessPyObjects” Python package. It provides high-performance and seamless sharing and modification of Python object...
New
fabforms
I would like to announce updates to fabform.io our form backend service for developers
New
kirkjkrauss
I’m not the first developer to code a method dedicated to matching the classic ‘*’ and ‘?’ wildcards in Rust.  But I may be the first to...
New

Other popular topics Top

New
Exadra37
Oh just spent so much time on this to discover now that RancherOS is in end of life but Rancher is refusing to mark the Github repo as su...
New
PragmaticBookshelf
Use WebRTC to build web applications that stream media and data in real time directly from one user to another, all in the browser. ...
New
AstonJ
We’ve talked about his book briefly here but it is quickly becoming obsolete - so he’s decided to create a series of 7 podcasts, the firs...
New
AstonJ
If you get Can't find emacs in your PATH when trying to install Doom Emacs on your Mac you… just… need to install Emacs first! :lol: bre...
New
AstonJ
If you want a quick and easy way to block any website on your Mac using Little Snitch simply… File > New Rule: And select Deny, O...
New
New
PragmaticBookshelf
Develop, deploy, and debug BEAM applications using BEAMOps: a new paradigm that focuses on scalability, fault tolerance, and owning each ...
New
sir.laksmana_wenk
I’m able to do the “artistic” part of game-development; character designing/modeling, music, environment modeling, etc. However, I don’t...
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New