We know that in stream cipher algorithms plain text and generated key are Xored byte by byte. Generated key depends on how much plain text there is and on that basis key will generate and plain text is encrypted. So my doubt is I am using the latest stream cipher algorithm that is Rabbit and encrypting plain text using the Rabbit stream cipher so in that Rabbit's input key is 128-bit and after all operations output will be a 128-bit key that will Xored with Plain text and give cipher text. As here output is fixed 128-bit so if our data is more than 128-bit then how it will encrypt data? Do we have to do padding with our plain text to make it a multiple of 128-bits?
The stream cipher generates 128 key stream bits per iteration. Usually these bits are buffered internally. When the encryption or decryption (identical operation, encryption = decryption) takes place then the bits are taken out of the buffer and the plaintext at the same location is xorred with it. When the keystream buffer is exhausted the next iteration takes place, making another 16 bytes of key stream available to the user.
Some implementations do wait for the full block to become available. This should however be the exception rather than the rule. The last (possibly incomplete) block just takes as many bits out of the buffer as necessary. The other bits are simply discarded.
Note that this is entirely the same scheme as used by e.g. AES in counter mode. One possible performance enhancement is to enlarge the buffer and generate more 128 bit blocks of key stream in one go. This may have benefits if the generation of larger amounts of keystream is less CPU or CPU-cache intensive.