I just pushed a rough draft gr-juliaffi <https://github.com/JayKickliter/gr-juliaffi> to GitHub. It is not a Julia package, but a GNU Radio module (C++/Python) that calls your Julia code to do the actual signal processing.
If you're not familiar with GNU Radio, it is a software defined radio (SDR) framework. SDR is really cool. Traditional radio hardware is dedicated to certain kind of signal (like a satellite modem or FM receiver). SDR lets you use generic hardware that does little more than digitize the raw radio waves and send them to a computer. From there, all the signal processing is performed in software. There are real world applications <http://www.fsf.org/blogs/community/free-software-in-space-gnu-radio-and-the-isee-3-spacecraft> of SDR. I use it almost every day. The motivation for this block came recently when I needed something GNU Radio didn't have yet. At my job, we're developing new 802.15.4 hardware. There is an 802.15.4 <https://github.com/bastibl/gr-ieee802-15-4.git> out-of-tree module for GNU Radio, but it's not complete and doesn't have the capability of de-spreading <http://en.wikipedia.org/wiki/Direct-sequence_spread_spectrum> 802.15.4 900 MHz BPSK signals. I wrote code to de-spread the signal in Julia, and piped from/to GNU Radio using ZeroMQ. That works fine, but it's cumbersome. Why not just have GNU Radio call the Julia code directly? If you do want to use the module, please let me know what issues you run into when building/using it. I spent two solid days just trying to get cmake to find and properly set up linking to libjulia. I'm using OS X, and @rpath was causing the biggest problem for me. It only built when I finally stopped trying to tell cmake where to find libjulia and switched to find_library. Also I had to do an actual `make install release` in the Julia repo for all the headers and libraries to be in predictable locations. That's because the FindJulia cmake module I added calls julia on the command line to figure out where stuff is. The code still crashes if I try to run it with `jl_init(NULL) <https://github.com/JayKickliter/gr-juliaffi/blob/master/lib/juliablock_ff_impl.cc#L47> '. There's still more c++ work to be done, and I don't know c++. I just infinite monkey it 'till it works. I just hope I or someone else can figure out how to make the c++ configure itself dynamically, so it isn't necessary to define blocks for every combo of input/output type. Most of the repo was automatically created with gr_modtool. This file <https://github.com/JayKickliter/gr-juliaffi/blob/master/lib/juliablock_ff_impl.cc> is pretty much the whole project. It's definitely possible to change the number of inputs/outputs to block at runtime. Looking at the code, I think it may be possible to change the type as well. I was hoping have this done with some good examples in time to give a JuliaCon talk. Maybe next year. I'll be there anyway, if anyone's interested I'll give an informal demo.