Ridesharing has been becoming increasingly popular in urban areas worldwide for its low cost and environment friendliness. In this paper, we introduce social-awareness into realtime ridesharing services. In particular, upon receiving a user’s trip request, the service ranks feasible taxis in a way that integrates detour in time and passengers’ cohesion in social distance. We propose a new system framework to support such a social-aware taxi-sharing service. It provides two methods for selecting candidate taxis for a given trip request. The grid-based method quickly goes through available taxis and returns a relatively larger candidate set, whereas the edge-based method takes more time to obtain a smaller candidate set. Furthermore, we design techniques to speed up taxi route scheduling for a given trip request. We propose travel-time based bounds to rule out unqualified cases quickly, as well as algorithms to find feasible cases efficiently. We evaluate our proposals using a real taxi dataset from New York City. Experimental results demonstrate the efficiency and scalability of the proposed taxi recommendation solution in real-time social-aware ridesharing services.