I almost missed it but this year was the tenth anniversary of clj-net-pcap. clj-net-pcap is a wrapper/adapter/facade (No matter how you want to call it.) around jNetPcap, which itself wraps libpcap, that enables and eases packet capturing with Clojure.
This is the commit that started it all off:
commit 20efc7778c355cdac2eaa33e37254804111a0196 Author: Rüdiger Gad email@example.com Date: Tue Nov 13 12:13:30 2012 -0800 Initial commit
Feature-wise, there hasn’t been much happening in the past years. In fact, aside from what I did this year, the last notable changes happened around 2017/2018.
This year, I worked mostly on trying to keep clj-net-pcap prepared for the future. This work included:
- Update jnetpcap to use the latest updates from the most recent jnetpcap development branch. Thanks a lot to the jnetpcap developers!
- Patch the jnetpcap code to fix some problems I encountered. The clj-net-pcap git repository includes a clone of the jnetpcap development branch and the changes I applied on top of it in the git history.
- Re-build the readily built native libraries shipped with the jar file.
- Add some more improvements for Windows and FreeBSD ports. The Windows and FreeBSD ports are still work-in-progress and will likely have some issues here and there.
- Rebuild everything to provide a standalone jar file in the git repository and updated individual jar files on clojars.
clj-net-pcap version 1.8.4 was tested as follows:
- My development enviornment still is Fedora 36 on x86_64 (Yes, I need to update to 37). This is the main development environment I use and the unit test results as published on the clj-net-pcap github pages were executed here.
- In addition to running the full test suite on Fedora 36, I executed the test suite on Debian 11.4 within VirtualBox for x86_64 and i686. For all these environments, the tests passed successfully.
- On Windows 10 x86_64 in VirtualBox, I rebuilt the native libs and ran some simple experiments with the standalone jar file. These experiments showed that, in general, package capturing etc. seems to work. However, some automated tests fail. Unfortunately, I did not have time to investigate this further.
- On GhostBSD x86_64 in VirtualBox, I rebuilt the native libs for FreeBSD and ran some simple experiments with the standalone jar file. Package capturing seems to work somewhat. Sometimes, errors show up because mismatched wire/capture length. Also some automated tests fail. Again, unfortunately, I did not have time to investigate this further.
I hope that the new release is a step towards making clj-net-pcap more future proof, e.g., because it now mainly links against libpcap >1.0, which improves support for recent distributions. My main focus was on Linux but additonal work was already done for the Windows and FreeBSD ports as well.
I hope that these updates are helpful. If you have constructive comments or feedback, please let me know.