NAME

File::MMagic::XS - Guess File Type With XS (a la mod_mime_magic)

SYNOPSIS

  use File::MMagic::XS;

  my $m = File::MMagic::XS->new();
  my $mime = $m->get_mime($file);

DESCRIPTION

This is a port of Apache2 mod_mime_magic.c in Perl, written in XS with the aim of being efficient and fast especially for applications that need to be run for an extended amount of time.

Currently this software is in beta. If you have suggestions/recommendations about the interface or anything else, now is your chance to send them!

METHODS

new(%args)

Creates a new File::MMagic::XS object.

If you specify the file argument, then File::MMagic::XS will load magic definitions from the specified file. If unspecified, it will use the magic file that will be installed under File/MMagic/ directory.

parse_magic_file($file)

Read and parse a magic file, as used by Apache2.

get_mime($file)

Inspects the file specified by $file and returns a MIME type if possible. If no matching MIME type is found, then undef is returned.

fsmagic($file)

Inspects a file and returns a MIME type using inode information only. The contents of the file is not inspected.

ascmagic($file)

Inspects a piece of data (assuming it's not binary data), and attempts to determine the file type.

error()

Returns the last error string.

PERFORMANCE

          Rate   perl     xs
  perl  89.1/s     --  -100%
  xs   24390/s 27283%     --

Hey, I told you it's fast...

TODO

Add File::MMagic interface compatibility?

Use PerlIO_* abstraction?

SEE ALSO

File::MMagic

AUTHOR

Copyright 2005 Daisuke Maki <dmaki@cpan.org>. Development funded by Brazil Ltd <http://b.razil.jp>.

Underlying software: Copyright 1999-2004 The Apache Software Foundation, Copyright (c) 1996-1997 Cisco Systems, Inc., Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin.