Is this project possible?

Benji Smith dlanguage at benjismith.net
Tue Aug 5 10:59:11 PDT 2008


I'm currently working on a desktop analytics project, kind of like 
Google Analytics or Omniture, but for desktop software rather than for 
web apps (if you're interested, you can read more here: 
http://benjismith.net/index.php/2008/06/02/business-intelligence-for-desktop-software/ 
)

I've just finished writing the server, and now I need to write an 
embeddable client library than anyone can include in their own projects. 
The library will create its own thread and make periodic HTTP requests 
to the server, reporting various environment variables (client OS, CPU, 
memory, etc) as well as certain events (install, uninstall, session 
start & stop, etc). When the application terminates, this library's 
Thread will need to perform a few final cleanup actions (either invoking 
a remote HTTP method to report the end of the session, or saving the 
session data in the local filesystem, to be reported later).

The client library needs to expose a C interface, so that it can be 
embedded into any application (with thin wrappers for Java, .Net, 
python, etc), and it'll need to be targetted to Windows and Linux (and, 
eventually, to Mac OSX).

Ideally, I'd like to write this client library in D, but there seem to 
be some blocking issues. For example, I've read that the garbage 
collectors for D and Java conflict with one another (in that they listen 
for the same OS signals) and that any native JNI code developed with D 
needs to avoid using the garbage collector. But is it possible to create 
Threads and HTTP connections without using the GC? (Inidentally, I'd 
planned on using Tango with D 1.x, if that makes any difference.)

Does the same conflict exist with the .Net GC? Does it make any 
difference if I plan on using the Tango GC rather than the one in Phobos?

What would you guys recommend? Is it possible to develop this kind of 
library in D, or am I going to need to use C instead?

Thanks!

--benji



More information about the Digitalmars-d mailing list