Saturday, April 5, 2014

Announcing jsmime 0.2

Previously, I've been developing JSMime as a subdirectory within comm-central. However, after discussions with other developers, I have moved the official repository of record for JSMime to its own repository, now found on GitHub. The repository has been cleaned up and the feature set for version 0.2 has been selected, so that the current tip on JSMime (also the initial version) is version 0.2. This contains the feature set I imported into Thunderbird's source code last night, which is to say support for parsing MIME messages into the MIME tree, as well as support for parsing and encoding email address headers.

Thunderbird doesn't actually use the new code quite yet (as my current tree is stuck on a mozilla-central build error, so I haven't had time to run those patches through a last minute sanity check before requesting review), but the intent is to replace the current C++ implementations of nsIMsgHeaderParser and nsIMimeConverter with JSMime instead. Once those are done, I will be moving forward with my structured header plans which more or less ought to make those interfaces obsolete.

Within JSMime itself, the pieces which I will be working on next will be rounding out the implementation of header parsing and encoding support (I have prototypes for Date headers and the infernal RFC 2231 encoding that Content-Disposition needs), as well as support for building MIME messages from their constituent parts (a feature which would be greatly appreciated in the depths of compose and import in Thunderbird). I also want to implement full IDN and EAI support, but that's hampered by the lack of a JS implementation I can use for IDN (yes, there's punycode.js, but that doesn't do StringPrep). The important task of converting the MIME tree to a list of body parts and attachments is something I do want to work on as well, but I've vacillated on the implementation here several times and I'm not sure I've found one I like yet.

JSMime, as its name implies, tries to work in as pure JS as possible, augmented with several web APIs as necessary (such as TextDecoder for charset decoding). I'm using ES6 as the base here, because it gives me several features I consider invaluable for implementing JavaScript: Promises, Map, generators, let. This means it can run on an unprivileged web page—I test JSMime using Firefox nightlies and the Firefox debugger where necessary. Unfortunately, it only really works in Firefox at the moment because V8 doesn't support many ES6 features yet (such as destructuring, which is annoying but simple enough to work around, or Map iteration, which is completely necessary for the code). I'm not opposed to changing it to make it work on Node.js or Chrome, but I don't realistically have the time to spend doing it myself; if someone else has the time, please feel free to contact me or send patches.

33 comments:

  1. There are several advantages of forming a company in Switzerland, according to the World Bank report on ease of doing business. Please consider registering a company in Switzerland, especially, if your country of domicile has certain complications (namely political, regulatory or tax-related).

    ReplyDelete
  2. very interesting post.this is my first time visit here.i found so many interesting stuff in your blog especially its discussion..thanks for the post!
    Home Tutors
    | Online Tutoring Jobs UK

    ReplyDelete
  3. Thank you for your info, i hope you may create a lot of nice content like this within the future

    Microsoft Windows 10 OEM Home (PC) – GLOBAL Key |

    NORTON 360 Deluxe – 1 year for 3 devices

    ReplyDelete
  4. This my latest Bolog one of the most trustworthy platforms that bring you the latest and most useful coverage on the recently launched laptops, camera, phones, digital devices, and home appliances.

    McAfee Total Protection (4 Years/ 5 Devices)

    Norton Security 1 Device 1 Year Symantec Key NORTH AMERICA

    ReplyDelete
  5. Taking help for doing the assignments is the most common thing which students do. Students, who are not able to create the assignment on their own, take professionals to support for creating the assignment, this process is known as assignment help. A professional is an experienced person who knows every component of that topic and subject deeply.

    ReplyDelete
  6. Let us help you to start Roku tv setup. You can read the device setup manual to understand the guidelines.If the stepsare clear, attach the necessary hardware. Then use your remote to go to the network settings. Select the network andprovide the network credentials. Access the Roku account, collect the activation code and enter the code by visiting the portal,Roku.com/link to complete the activation.

    ReplyDelete
  7. Most of the time, QuickBooks Error 3371 occurs when the user is trying to reconfigure their PC. Users may also encounter this issue while trying to activate their QuickBooks for the first time. The damaged and missing company files can also be another possible reason behind the error. If the issue is also hampering your QuickBooks experience, contact our experts today. Our QuickBooks professionals are certified and help you to fix the problem with no further hassle. Do not hesitate to call us now, our team will be glad to help you out and suggest you the best possible solution to fix the problem.

    ReplyDelete
  8. Hi I'm Jessica, a homework help USA expert at LiveWebTutors. LiveWebTutors is providing astonishing homework help services in United States. Rely on us and secure higher grades in their examinations.

    ReplyDelete
  9. Very informative post, thanks for sharing it with us. If you are passionate about the blog and couldn’t spare out enough time, its good idea to outsource the work to freelancers, by this you will get your work done as well as your blog will get updated. Thanks.

    ReplyDelete
  10. Garmin Express software is required to get regular updates for your Garmin devices. You won't be able to update your gadgets otherwise. To download Garmin Express, click on the following URL: www.garmin.com/express updates. You must first create a Garmin account before downloading Garmin Express. Garmin Express is necessary to sync with a wide range of devices, including fitness trackers and mapping devices. After the Garmin devices and compatible storage devices have been synced, file communication is permitted. You can easily transfer files and maps.

    ReplyDelete
  11. Sometimes you might face some issues with Quickbooks file doctor tool as Quickbooks file doctor tool is not working. If you need more assistance, reach out to our technical support at +1-888-485-0289 team will help you in resolving QuickBooks file doctor tool issues.

    ReplyDelete
  12. You have given us a lot of information through your blog. Thanks for sharing.
    To save your printer work for a long time, it must be required to be cleaned all the dust or other harmful particles from outside.
    http//ij.start.canon

    ReplyDelete
  13. auction sites like eBayAugust 17, 2021 at 4:15 AM

    Nice and interesting post, I appreciate your hard work, keep uploading more, Thank you for sharing valuable information. Also, Check auction sites like eBay      

    ReplyDelete
  14. I am new here but they are offering exactly what I am looking for. I want an Economics assignment help. I am in the United States, and therefore, I don’t know whether they offer the service here. If you do, let me know how much it will cost me for Economics homework help. I am waiting for their response.

    ReplyDelete
  15. This comment has been removed by the author.

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete
  17. This comment has been removed by the author.

    ReplyDelete
  18. This comment has been removed by the author.

    ReplyDelete
  19. The very first step is to switch to ij.start.cannon. This is the official Canon website and a secure platform from which you can simply download Canon printer drivers. So to get started, open a compatible and extremely protected web browser.ij.start.cannon

    ReplyDelete
  20. Moviesda is a piracy website that allows users to download a huge collection of pirated movies for free. Moviesda is a torrent website that allows users to download Tamil movies and other movies dubbed in Tamil. It has a simple interface and has two primary sections - one with original Tamil movies and second with Hollywood movies dubbed in Tamil. The original Tamil movie section has movies according to years. For instance, there is a Tamil 2015 movies button, a Tamil 2016 button, and so on. There is also a Tamil Movies Collection button that has movies arranged according to actors. Finally, there is a Tamil HD mobile movies section in which users can Moviesda 2021 full movie download in lower quality and size, thereby being able to play them on mobile phone's smaller screens.
    Moviesda

    ReplyDelete
  21. Before you go through ij.start.cannon to set up your device, make sure you have known your device model name. If not, then check the name in front of your device or see on the top of the printer or scanner. Once you check the name, use it while the need for a download.The easy way to setup ij.start.canon printer wirelessly is downloading from ij.start canon where along with the printer driver, e Scan Utility will be installed. If you become unable to download the setup, perform the steps below;

    ij.start canon

    ReplyDelete
  22. This comment has been removed by the author.

    ReplyDelete
  23. Very Good Article, This blog is always been my first choice to read, Thanks For sharing

    ReplyDelete
  24. Thanks for sharing this. Shop stones at the best crystal stores near me, crystals can guide you through the uncharted territories of passion to find balance in the chaos.

    ReplyDelete
  25. EMDigitizer has been providing premium quality embroidery digitizing service for embroidery digitized by experienced digitizers.

    ReplyDelete
  26. Thank you for the useful information

    ReplyDelete
  27. Certainly! Embroidery digitizing is the backbone of every project, dictating its quality. Selecting the right service is crucial for achieving your desired outcome. Striking a balance between precision, efficiency, and cost ensures your designs come to life seamlessly.

    ReplyDelete
  28. Digit-it specializes in high-quality Cap Digitizing services, seamlessly transforming logos and designs into precise, embroidered masterpieces. With advanced technology and skilled craftsmanship, Digit-it ensures vibrant and detailed embroidery on caps, bringing your brand to life with professionalism and flair. Elevate your headwear with Digit-it's expert cap digitizing solutions.

    ReplyDelete