Meet Carakan and Vega
By Espen André ØverdahlEspenAO. Thursday, February 5, 2009 1:16:04 PM
In this post, we'd like to highlight Opera's upcoming ECMAScript/JavaScript engine, called Carakan, as well as our Vega vector graphics library, both of which were announced at the Web Directions North conference in Denver, Colorado.
Carakan
Over the past few months, a small team of developers and testers have been working on implementing a new ECMAScript/JavaScript engine for Opera. When Opera's current ECMAScript engine, called Futhark, was first released in a public version, it was the fastest engine on the market. That engine was developed to minimize code footprint and memory usage, rather than to achieve maximum execution speed. This has traditionally been a correct trade-off on many of the platforms Opera runs on. The Web is a changing environment however, and tomorrow's advanced web applications will require faster ECMAScript execution, so we have now taken on the challenge to once again develop the fastest ECMAScript engine on the market.
The name Carakan, like the names of Opera's previous ECMAScript engines, Futhark, Linear A and Linear B, is the name of a writing system, or "script".
We have focused our efforts to improve upon our previous engine in three main areas: register-based bytecode, native code generation and automatic object classification.
How fast is Carakan? Using a regular cross-platform switch dispatch mechanism (without any generated native code) Carakan is currently about two and a half times faster at the SunSpider benchmark than the ECMAScript engine in Presto 2.2 (Opera 10 Alpha). Since Opera is ported to many different hardware architectures, this cross-platform improvement is on its own very important.
The native code generation in Carakan is not yet ready for full-scale testing, but a few individual benchmark tests we ran show that it is already compatible with runs between 5 and 50 times faster, so it is looking promising so far.
Vega
Vega was created shortly after we started working on SVG support, for which we needed a vector graphics library. We looked into what libraries were available to use and met our requirements (fast, low memory usage and working on platforms ranging from phones to TVs and desktop computers). We did not find and good match for our needs, so we decided to write our own. Shortly after we created Vega we also added <canvas> support.
The most recent addition to Vega is the ability to use a hardware accelerated back-end. The back-ends we are using at the moment are OpenGL and Direct3D.
In the core version we are currently developing, Presto 2.3, we have made it possible to use Vega for all rendering in Opera. This means that we can replace the platform specific code for rendering with Vega. In the future it might be mandatory to use Vega for rendering, but in Presto 2.3 it is still possible to use the old rendering back-ends.There are three reasons for doing this:
- Firstly, the new CSS3 background and borders standard is much easier to implement using a vector graphics library. Presto 2.3 adds partial support for CSS3 backgrounds and borders, but only when using Vega for rendering.
- The second reason is to support hardware acceleration of our vector graphics. In order to be able to render SVG and <canvas> in hardware we must also be able to directly draw the rendered vector graphics to the screen since reading back the rendered image from the graphics card is usually slower than rendering in software.
- And finally, doing this enables us to easily add advanced graphical effects to our UI and to web pages.
Wallpaper
Be sure to download our wallpaper:
Other recources
Stay tuned for more in the next couple of months!



José Torreszetorres # Thursday, February 5, 2009 1:17:51 PM
Dan Alexandrudantesoft # Thursday, February 5, 2009 1:28:39 PM
HenryAOTEAROAnz # Thursday, February 5, 2009 1:35:50 PM
Carakan F.A.Qs
Tamil # Thursday, February 5, 2009 2:10:04 PM
Charles SchlossChas4 # Thursday, February 5, 2009 2:48:18 PM
Artur „Jurgi” JurgawkaJurgi # Thursday, February 5, 2009 4:06:15 PM
BTW: in Polish „caracan” means „cockroach”. ;P
Dan Alexandrudantesoft # Thursday, February 5, 2009 4:14:10 PM
sms985 # Thursday, February 5, 2009 4:21:14 PM
Ahmed GhanemAhmedGhanem # Thursday, February 5, 2009 5:06:31 PM
Ahmed GhanemAhmedGhanem # Thursday, February 5, 2009 5:13:43 PM
thobi # Thursday, February 5, 2009 5:24:57 PM
NicoHellbillyDeluxe # Friday, February 6, 2009 10:47:55 AM
Any rough ETA when we can see this in action? Please!
Dan Alexandrudantesoft # Friday, February 6, 2009 11:28:48 AM
ExtAnimal # Friday, February 6, 2009 1:10:25 PM
I'm loving running my apps on Chrome right now, so I'm looking forward to this new innovation from Opera.
Sn3ipen # Friday, February 6, 2009 1:59:21 PM
neNDraNendra2008 # Saturday, February 7, 2009 5:29:40 AM
Its good exsperience!
Barraco Mármol Jerónimojerobarraco # Sunday, February 8, 2009 4:08:13 PM
FELIX KIMARUFLEXAZZ # Thursday, February 12, 2009 5:24:16 AM
Nuiy # Thursday, February 12, 2009 11:05:37 AM
W bru lho kuT comunity !
Ankuryadavankur # Sunday, February 15, 2009 1:08:36 AM
Ankur Srivastava anchorschmidt # Sunday, February 15, 2009 3:06:25 PM
olawale oluwagbemiga martinsmatcom4 # Saturday, February 21, 2009 9:33:40 PM
the news is spreading fast
Opera will allways be the fastest browser 4 me.
Rachmarachmataz # Saturday, May 23, 2009 7:32:05 AM
I think it taken from 'Hanacaraka', Javanese font
Daniel HendrycksDanielHendrycks # Saturday, October 3, 2009 10:46:31 PM
http://bit.ly/tpkgL
Charles SchlossChas4 # Saturday, October 3, 2009 10:54:11 PM
Hector Macias Ayalahectormacias # Tuesday, December 1, 2009 7:06:12 PM
its all just about 3 thing.
presto 2.4, carakan and vega.
d4rkn1ght # Wednesday, December 2, 2009 3:29:47 AM
Daniel HendrycksDanielHendrycks # Wednesday, December 2, 2009 3:42:14 AM
Originally posted by d4rkn1ght:
Exactly...
Charles SchlossChas4 # Wednesday, December 2, 2009 4:02:01 AM
Purdi # Wednesday, December 2, 2009 12:52:55 PM
Originally posted by hectormacias:
And Presto 2.4 is faster even without hardware acceleration.
Hector Macias Ayalahectormacias # Saturday, December 12, 2009 7:07:23 AM
Originally posted by Purdi:
I know, and with Vega it wil be even more, the thing is I can already testdrive FF 3.7 alpha, while I cant testdrive Presto 2.4