Skip to content

rgbkrk/juno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

juno

Go library for interacting with the Jupyter Messaging Protocol.

package main

import (
	"log"
	"os"

	"github.com/rgbkrk/juno"
	"github.com/zeromq/goczmq"
)

func main() {
	if len(os.Args) < 2 {
		log.Fatal("Please provide a path to a kernel runtime")
	}

	pathToKernelRuntime := os.Args[1]

	connInfo, err := juno.NewConnectionInfo(pathToKernelRuntime)

	if err != nil {
		log.Fatal(err)
	}

	// Create an iopub socket that provides go channels
	ioConnection := connInfo.IOPubConnectionString()
	iopub := goczmq.NewSubChanneler(ioConnection, "")
	defer iopub.Destroy()

	// Listen for messages... forever!
	for {
		select {
		case wireMessage := <-iopub.RecvChan:
			var message juno.Message
			err := message.ParseWireProtocol(wireMessage, connInfo)
			// Do something with the message

			if err != nil {
				// Handle the error
				log.Println("Error parsing message: ", err)
				continue
			}

			log.Println("Message: ", message)

		}
	}
}

Releases

No releases published

Packages

No packages published

Languages