unsparing

adjective
  1. showing no mercy or restraint; harsh or severe
  2. giving or using generously without holding back

Examples