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.

35 comments:

Company Switzerland said...

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).

Selectmytutor said...

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

Anny Christine said...

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

Anny Christine said...

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

Anonymous said...

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.

Ronaldo drogba said...

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.

harryparker0123 said...

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.

Jessica Knight said...

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.

logo for embroidery online in usa said...

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.

marklee9161 said...

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.

QuickBooks Enterprise Support said...

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.

ijcannonstart said...

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

auction sites like eBay said...

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

Charlotte Paisley said...

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.

Amelia Carter said...
This comment has been removed by the author.
Amelia Carter said...
This comment has been removed by the author.
Amelia Carter said...
This comment has been removed by the author.
Amelia Carter said...
This comment has been removed by the author.
Qunock6987 said...

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

Shrainy Fogat said...

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

David Martin said...

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

name said...
This comment has been removed by the author.
Hope James said...

Exceptional, engaging, and effective! This is what sums up the game based learning companies of Acadecraft!
The gamification designs that the company offers enable better user engagement and memory retention. Reach out at info@acadecraft.com for 24/7 services.
Also read: SCORM Compliant Learning Management System

Accountingwhizz said...

thanks for sharing your post.
Configuring Multiple Users in QuickBooks Online
HOW TO UPGRADE QUICKBOOKS TO THE LATEST RELEASE EFFORTLESSLY.
Upgrade QuickBooks Desktop Pro Plus, Premier Plus, or Enterprise
Why QuickBooks Desktop Premier Plus
QuickBooks Desktop 2022 Upgrade- Features & Downloading Guide
What is the difference between pro and premier QuickBooks
Fix Login Problems Of Quickbooks Online On Chrome

Parents said...

Firefox fast

Anonymous said...

غسيل سجاد
شركة تنظيف سجاد بالجبيل

Megri Embroidery Digitizing said...

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

orca agate freeform said...

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.

Embroidery digitizer said...

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

Tony Robbins said...

Amazing website, Love it. Great work done. Nice website. Love it. This is really nice.

Verizon Email Not Working
How Do I Troubleshoot Verizon Email Not Working?

Kindle Avenue said...

Excellent share for all visitors: Kindle Avenue

Ryza Vestments said...

Thank you for the useful information

Hart Williams said...

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.

Cap Digitizing said...

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.

Cap Digitizing said...

Digit-it specializes in top-notch Embroidered Hat Digitizing Services, transforming your logos or designs into high-quality digital formats for flawless embroidery. With precision and expertise, Digit-it ensures vibrant and accurate embroidery on hats, making your brand or personal expression stand out with detailed craftsmanship. Elevate your headwear with Digit-it's unrivaled digitizing solutions.