To use ZFS filesystem your operating system must implement it. illumos based distributions have full ZFS functionality: OpenIndiana, SmartOS, OmniOS, to name few. More complete list is maintained at illumos project web page. FreeBSD has full ZFS implementation. Check FreeBSD project web page for information on which releases contain ZFS. There are projects to implement ZFS for Linux. ZFS as a fuse filesystem and inkernel implementation - zfsonlinux.
Hardware requirements are any hardware platform that your ZFS capable operating system runs on (for OpenIndiana it is currently only x86). Check you distribution web page for information which hardware platforms are supported.
Minimum zpool is 64MB and the smallest device is 128 MB.
Since ZFS does lots of aggressive caching, the more RAM the better. Right now amount over 128 GB of RAM can cause issues with ARC space reclaiming and ARC size will need manual tuning. It is considered a good practice not to go below 1 GB of RAM and 2 is considered absolute minimum for work on a workstation. For storage solutions the amount needs to be higher.
More detailed instructions can be found on Solaris Internals page: http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide