XeTeX is already capable of producing Malayalam documents by processing Unicode text using Opentype fonts. But there exist some issues when it comes to rendering Malayalam and more so with the traditional script. It uses an internal version of
ICU library for
CTL. So the changes in the ICU are not well reflected there in it. At least, not with the XeTex that comes with the texlive(I use Debian Lenny/testing), in my case.
But the
svn version of XeTeX has 3.8.1, and optionally 4.0, releases of ICU. This solves most of the issues with Malayalam.(I also changed
here the character classess for RA and LA, in the classtable for Malayalam, to _ct instead of _pb and _bb, respectively.This gave expected results when we write യ്ര, യ്ല etc. using tradional lipi fonts).
The development libraries needed for the build are:
libkpathsea-dev, libfreetype6-dev, libfontconfig1-dev, and libmagick9-dev.
So either get the svn by:
$ svn checkout http://scripts.sil.org/svn-public/xetex/TRUNK xetex
or get the tar ball from:
http://scripts.sil.org/svn-view/xetex/TRUNK.tar.gz?view=tar
Now from the XeTeX directory(the extracted tar directory) build it:
$ ./build-xetex
(You have make it executable or else call the shell)
It would be tricky if you go on to install it by running the install-xetex script. Because, you may have to face with a number of path searching issues unless you are able to fix those things. So the better option is to replace your xetex binary, installed as a part of texlive-xetex, by the one we have now built. It worked perfectly for me.
Now with this sample doc:
\documentclass{article}
\usepackage{fontspec}
\usepackage{xltxtra}
\def\meera{\fontspec[Script=Malayalam]{Meera}}
\def\rachana{\fontspec[Script=Malayalam]{Rachana}}
\def\suruma{\fontspec[Script=Malayalam]{suruma}}
\begin{document}
%\fontspec[Script=Malayalam]{Meera}
\title{\rachana മലയാളം സീടെക് പരീക്ഷണം}
\author{\meera സുരേഷ്}
\date{}
\maketitle
\begin{center}
{\fontsize{14.4}{10}\meera
സീടെക്(\XeTeX) ഉപയോഗിച്ചു്
ഒരു മലയാളം ടെക്(\TeX) പരീക്ഷണം.
}
\vskip 2pt
{\fontsize{12}{10}\rachana
സീടെക്(\XeTeX) ഉപയോഗിച്ചു്
ഒരു മലയാളം ടെക്(\TeX) പരീക്ഷണം.
}
\vskip 2pt
{\fontsize{12}{10}\suruma
സീടെക്(\XeTeX) ഉപയോഗിച്ചു്
ഒരു മലയാളം ടെക്(\TeX) പരീക്ഷണം.
}
\end{center}
\end{document}
I got this result:

Update: A sample
mlym.sty file for xelatex for Shyam Karanattu
Usage:
\usepackage[rachana]{mlym}
\begin{document}
.....
.....
.....
\end{document}
Unicode, Tex, Malayalam, Unicode