There are algorithms working in polynomial time, but for higher genus the exponent is high and implementation is difficult. A nice survey is the paper of Gaudry and Harley
"Counting Points on Hyperelliptic Curves over Finite Fields"
Lecture Notes in Computer Science, 2000, Volume 1838/2000, 313-332.