Foopipes 2.3 released! 2017-06-30

Foopipes 2.3 released!

A new version of Foopipes has just been pushed to Docker hub with some new interesting features and enhancements, including a preview of C# scripting support.

What's new

  • Roslyn .NET C# scripting preview! This is still work in progress but we feel it is stable enough for some external testing. We have lots of ideas how this can be utilitized in the future. For instance - lambdas, Rx Linq expressions, joins etc etc.
pipelines: 
 - 
  when: 
   - queue: started
  from:
   - http: "https://jsonplaceholder.typicode.com/posts" 
  do:
   - script: |     
       obj.hello = "world";
       obj.hello2 = await Server.BindValue("#{title}");
       return obj;
  to:
    - log
  • We have incorporated Reactive Extensions (Rx) into Foopipes. This together with C# scripting will allow us to do things that we never thought possible.

  • UDPListener service. Allows you to listen for UDP and invoke pipelines when a package is received. Packages may be binary data or json. This is a simple example of how to collect statistics via UDP and forward to Google Analytics:

services: 
  udp: 
    type: udplistener
    port: 8080
    format: json
pipelines: 
  - 
    when: 
      - udp
    do:
      - { map, v: 1, t: event, tid: UA-xxxxx-y, cid: "#{UserId}", ec: "myevent", ea: "#{EventType}", ev: "#{Count}", uip: "#{metadata:remoteEndPoint}" }
    to:
      - { http: "https://www.google-analytics.com/collect", method: post, body: formUrlEncoded }
  • The RavenDB plugin can now subscribe for document and index changes.
services: 
  ravendb:
    type: ravendb
    connectionString: "Url=http://localhost:8080/;Database=mydb"
    changesForDocumentsInCollection:
      - post
pipelines: 
  -
    when:
      - ravendb: Put
    from:
      - { load: ravendb, dataType: "#{CollectionName}", key: "#{Id}" }
    to:
      - log
  -
    when:
      - ravendb: Delete
    to:
      - log: "Document #{Id} deleted"
  • A few new tasks: readfile, parsexml, parsejson. You can probably guess what they do based on their name.

Enjoy!