Public sector employees and transport workers across Italy went on strike Friday in an action pitting trade unions against the hard-right government in Rome over its 2024 budget.

Prime Minister Giorgia Meloni's government has been accused of using the budget to chase votes ahead of next year's European Parliament elections at the expense of workers and pensioners.

"Meloni, the people are hungry", read one banner held aloft by protesters gathered in Rome's historic Piazza del Popolo, while thousands of demonstrators marched through the streets in Genoa and Milan.

The walkout was called by two of the country's largest unions, the CGIL and UIL, which say the tax-cutting budget woefully underfunds key sectors such as health, education and industry.

Teachers, healthcare workers, taxi drivers and postal workers were called to strike for eight hours nationwide, while some in the private sector, from steelworkers to shopkeepers, could join in central Italy.

Deputy Prime Minister Matteo Salvini, who is also transport minister, imposed restrictions on the strike to reduce the disruption, to the outrage of union leaders.

In what he described as a compromise based on "common sense", he halved the duration of the transport workers and firefighters strike to four hours during the morning, while air travel is not included at all.

CGIL general secretary Maurizio Landini accused him of an "attack on the right to strike".

The unions had sought to have their walkout defined as a general strike, which would have been allowed to last 24 hours.

But the watchdog that arbitrates strikes in Italy said it did not meet the criteria, as several sectors were excluded from the action, which is also being spread out over five days.