Some kind of integration will always be needed.
If you cannot use an RC integrator, use a DAC and a up/down counter.
As your input signal is high, count upwards high frequency pulses. When the input signal is low, count downwards. The output of the counter is supplied to a DAC. A low-pass filter smoothes the DAC output.
Another way could be controlling a courrent source sink which feeds a capacitor. When the input signal is high you charge a capacitor with a constant current. In the other case you discharge the capacitor.
In both cases a triangular wave is generated.