merobase is a search and tagging engine that allows users to find, remember and share components on the Internet. In contrast with first-generation code search engines, merobase treats source code modules as first class abstractions rather than chunks of text, and is thereby able to offer a much wider range of search options. In particular, merobase specializes in finding components based on their interface (or API) rather than the strings in their source code.
merobase supports four basic kinds of searches. Using the Merobase Query Language (MQL) you can look for components that have a particular name or contain a given string in their source code. But in addition you can search for components that represent a particular logical abstraction - either a function-oriented abstraction or an object-oriented abstraction. In addition, merobase supports a wide range of constraints which allow you to narrow down your search to components with a particular set of properties.
The highlights of merobase's search capabilities include:
No! Because of its ability to find components based on their interface, merobase is able to support searches for all kinds of software components not just those in source form. For example, you can search for compiled components (such as Java byte code or .Net assemblies) or you can search for web services. Merobase also supports searches for various kinds of physical and logical containers such as jar files and packages.
It allows you to tailor searches to your needs without you having to type your preferred constraints into each query. Using this feature you can define a set of default constraints which are automatically added to every query that you enter. For example, if you are only interesting in looking for Java source classes then you can define the following combination of constraints as your default.
lang:java form:source type:class
To do this, enter the constraints into the search area and click the "use as default constraints" link below the query box. If you are logged in, your default constraints are stored permanently in your preferences until you delete them again.
merobase currently focuses on three languages: Java classes, C# classes and web services. However, it can support searches in over forty languages and this list is expanding all the time.
Like general purpose search engines, merobase does not create or own the components that it references in its index or its search results. The appearance of a component in a search list does not necessarily mean that the component is available for use, it is only an indication that it is publicly accessible via the Internet. You use components discovered via merobase entirely at your own risk, therefore, and you are responsible for paying any fees and conforming to any licensing agreements.
Merobase's indices for Java, C and C# , its three current foci, are larger than any those of any other code search engine that we are aware of (in other words, searches are performed over a larger number of components). In addition, merobase's indexes web services and binary components as well as regular source code. In total, our index references almost 10 million components.
The "community" area of merobase allows users to bookmark and tag the components that they find using the search engine. Like most bookmarking and tagging engines, these tags and bookmarks are public, and can be seen by any registered users of the system.
Google Code Search essentially searches for specified strings in the source code of indexed components. This corresponds exactly to merobase's text based search facility. Merobase does not itself support GCS-style regular expression but merobase's query language provides equivalent functionality. In fact it provides an easier and more intuitive way of focusing a search on components with particular combinations of names and properties than the extremely generic regular expression language.
GCS currently has no equivalent to merobase's function and object-oriented search facilities and is limited to source code.
Koders & KrugleThe basic search mechanisms of Koders and Krugle also search for strings in the source code of indexed components. However, they both offer some special queries which allow more specialized searches. The merobase equivalent to each of these is shown in the table below.
| Constrain on... | Krugle | Koders | merobase |
|---|---|---|---|
| class names | selectable from menu | cdef:<search term> Search for classes whose name contains <search term> cdef:parser | name:parser type:class (the latter constraint is only required if you want to exclude interfaces, services and enumerations) |
| operation declarations | selectable from menu | mdef:compute | method:compute |
| interface names | - | idef:logging | name:logging type:interface |
| operation invocations | selectable from menu | mcall:<search term> Search for method calls that contain <search term> mcall:query | this can be easily simulated with a text-based search on merobase: e.g. ".query(" |
| compound examples | - | compound examples: Search for classes named 'tree' with a method named 'insert' "cdef:tree mdef:insert" | merobase supports combinations of its constraints with Boolean operators |
| language | lang:java | selectable from menu | lang:java |
| project | additional input field | - | project:eclipse |
| license | - | selectable from menu | license:"general public license" This constraint can also be used with a NOT or "-" to exclude licenses. merobase also supports the lictype constraint to select a group of licenses |
| functional abstraction | - | - | random(float,float):float; merobase supports full interface-driven queries |
| object abstraction | - | - |
ShoppingCart ( addItem(Item, int); total():double; ) |
Neither Koders or Krugle currently have an equivalent to merobase's function or object-oriented search facilities. Moreover, their indices are limited to source code while merobase also supports binary file type like classes and .NET assemblies.
jarhoo.comsince merobase is able to find JAR files that contain a given class it subsumes the functionality of jarhoo.com.
javadocs.commerobase has a feature that is able to forward you directly to the javadoc of a given class as long as it is available on the web. Just enter e.g. http://merobase.com/javadoc/java.util.Stack in your webbrowser and get redirected to the javadoc you want.
home · getting started · updates · faq · about · terms of service · contact · downloads · submit