Charles 3.7 released
The latest version of Charles contains several new features, which I will blog about shortly. But in this post I want to talk about the changes to the way Charles is distributed.
Previously Charles required a Java Runtime Environment (JRE) to be installed on your computer. This was sometimes a problem, but usually not. Particularly on Mac OS X where Java has been preinstalled for ever. However Apple has stopped preinstalling Java, and their Java implementation is soon end-of-life. Furthermore on Windows some strange goings-on have been reported with the Java installer and the side-loading of browser toolbars. And finally the security problems with the Java plugin, which don’t affect Charles, but nonetheless tarnish the requirement of installing Java… All of concern when requiring a Java installation.
Fortunately there is a simple solution. As of version 3.7, Charles now bundles a private JRE on Windows and Mac OS X. This makes the application download larger, but simplifies all of these issues. The private JRE doesn’t impact the rest of your system, whether you have Java installed or not, and it doesn’t include the Java plugin or install anything in your browser so there’s no concerns. I hope that this change makes installing and using Charles easier!
If you were previously concerned about having Java installed because of the Java plugin issues, you no longer require a Java installation for Charles so you are free to uninstall Java from your system.
On Linux it’s a slightly different story. I could bundle a JRE for Linux, however the Java runtime packages tend to be updated along with other system packages, and bundling software that is available as a separate package is frowned upon. The best way to install Charles on Linux is to use the apt repository, which specifies the Java runtime as a dependency. I welcome feedback on this issue!
Finally in other Mac OS X news, I’m pleased to announce that Charles is signed with a developer certificate from Apple so you can open it without interference from Mountain Lion’s GateKeeper. And Charles also looks more Mac-like on Mountain Lion again, so your eye balls can relax.
Charles 3.7 beta 2
Charles 3.7 beta 2 is now available for download. This beta changes Charles to use Apple’s new Developer ID SSL certificate for code signing. If you’re on a Mac please download it and try it out, and let me know how it goes! Especially if you’re running Mountain Lion.
Charles 3.6.5 released
Charles 3.6.5 was released earlier today. It’s primarily a bug fix release.
- For Java 1.7 a number of incompatibilities were fixed including a delay during startup and hung network connections.
- Fixes for a networking regression in 3.6.4 - an improvement to the networking caused an irregular Connection reset (or similar) error to occur when browsing.
- SSL behaviour improved including better error messages in the browser and fixing a regression in 3.6.4 that caused empty requests to appear.
The next version of Charles will be 3.7 and will include more advanced timing of DNS lookups, TCP connections and SSL handshakes, as well as improved kept-alive connection reporting so you can see when new HTTP connections are established. The first beta of 3.7 is available today.
Charles 3.6.4 was released this week. It includes a number of bug fixes which are outlined in the version history. If you had trouble with Charles sometimes starting with a blank window, or freezing while using breakpoints, this might be the bug fix release for you. If you are interested in the HAR import/export capabilities, this is definitely the release for you.
I also want to draw attention to the PCAP import. You can capture traffic in a tool, such as Wireshark, and then save that traffic in a .pcap file and then import it into Charles. Charles analyses the HTTP traffic and pieces it back together as if Charles had been there to intercept it. This can be an option for capturing and analysing traffic in Charles when you can’t get an application to directly use Charles. Aside from bug fixes, Charles 3.6.4 also improves the PCAP import - ensuring that keep-alive requests and imported and putting things in the right order.
The other thing I want to highlight is Linux support. Charles has supported Linux since very early on in its life, but it’s never done a particularly good job at installing and running nicely as part of a Linux desktop. This is no doubt my fault as the vast majority of my Linux boxes are command-line only. Charles 3.6.4 features an improved start script for Linux, bigger icons, and most excitingly an APT package for Debian-based Linux distributions. I’ve particularly tested it on Ubuntu: the package installs Charles into your applications menus, and the package makes the process of getting new versions of Charles much easier. If you’re a Linux user who can’t use APT packages, get in touch and we’ll see if we can make other package types!
The next release of Charles is going to include more bug fixes and minor enhancements; I’m particularly focussing on fixing a few issues around Java 1.7 so if you’re having trouble with 1.7 please get in touch and try the latest beta.
Charles 3.6.4 and HAR (HTTP Archive)
Charles 3.6.4 is another minor update to the 3.6 release; it features a large number of bug fixes, including several improvements to the HAR import/export implementation. We introduced HAR import/export to Charles 3.6 and it has just gotten better (or really, in the case of the bugs, less broken). Thanks to everyone who has corresponded with me about particular issues (especially Alex Selivanov).
HAR is an archive format for HTTP requests and responses for interoperability between software packages. Adding HAR support to Charles makes it possible to capture requests in another application and import them into Charles for analysis, or to capture in Charles and export.
I’m on the lookout for interesting analysis applications that import HAR files… drop me an email if you have any you use.
Charles v3.5.1 released
Happy New Year everyone! A small bug fix release for Charles, tidying up two bugs that were discovered in the 3.5 release. These include a fault in the Repeat Advanced tool, where it would fail after a number of requests, and a fault in the Auto Save tool where it wouldn’t save the “Enable on startup” setting. Download Charles 3.5.1
Charles v3.5 released
Charles v3.5 is now available, just in time for Christmas. It contains a number of significant new features, enhancements and bug fixes. They’re all detailed on the version history page. The UI has been improved again and is now looking sensible on Windows 7 (thanks to an update from JGoodies) and better on Mac OS X (thanks to Quaqua, and some work getting rid of duplicate borders). It’s a hard road making Charles look sensible across all of these different platforms, but I hope that the direction is always up! Users with Microsoft proxies or proxies that require NTLM authentication; you’re in luck! I’ve implemented NTLM authentication into Charles using the JCIFS library, so you can now enter your Domain, Username and Password in the External Proxy Settings dialog and never be bothered by proxy authentication again. Various other external proxy related fixes are also in this release so it should be a good one for you guys. Users who dare to venture into WireShark or TCP Dump… I too have had to go there, particularly to debug a performance issue in Charles, so I’ve added PCAP import to Charles. It’s a little basic at the moment so I expect there to be PCAPs that don’t import correctly - if you can, please send them to me so I can increase my test coverage and fix up faults! PCAP import is HTTP only, it can’t import HTTPS (of course). Transparent proxying is now an option on the HTTP proxy configuration in the Proxy Settings. This is mostly useful if you’re a network guy and can configure your firewall to route traffic through Charles. This can help you capture traffic from more stubborn applications. As always, contact me via the form on the Charles website if you encounter any bugs. Otherwise, best wishes for Christmas and New Year. See you in 2010! Download Charles v3.5
Charles v3.4.1 released
This is a minor feature and bug fix release. Firstly, it fixes the regression bug in v3.4 that broke request body editing in Breakpoints. Thanks to everyone that reported and tested that for me - your help is most appreciated. Secondly, it replaces the functionality that you could paste a full URL into the Location form. It works even better now, as you’ll see, and there are warnings if you enter inappropriate things in different fields to make it more likely that you’ll get the right result! Download Charles 3.4.1
Charles v3.4 released
After six months of development I’ve released Charles v3.4. This version features major SSL changes improvements including:
- You must now explicitly turn on SSL proxying on a per-site basis. This is to prevent confusion and problems with Charles’s SSL certificates, and also to save users from accidentally violating their own privacy by recording unwanted SSL communication inside Charles.
- The SSL CA certificate has changed, but thankfully so have the ways of installing it. In Firefox after installing the Charles add-on (now also automatic) you can choose “Install Charles CA SSL Certificate” from the Charles submenu in the Tools menu. For your OS as a whole, there is a similar option in the Help menu. The SSL certificate change was to address faults in Mac OS X Leopard and later.
- Client SSL certificates are now supported for authentication. There is an option to load them in the Proxy menu.
- When Charles creates an SSL certificate for a site you can now permanently trust that SSL certificate in your browser. This can negate the need to trust the Charles CA SSL certificate at all.
Version 3.4 also adds a much requested “only record these sites” option in the Recording settings. I am still working on a better way to reduce the noise in Charles, but this will be useful in the meantime. There are many other changes and fixes listed in the Version History, please take a look. Please let me know if you encounter any problems, particularly regressions. Download Charles Proxy 3.4