---
title: 'Bazel BUILD Encyclopedia of Functions'
---

## Concepts and terminology

* [Common definitions](/versions/7.6.1/reference/be/common-definitions)
  + [Bourne shell tokenization](/versions/7.6.1/reference/be/common-definitions#sh-tokenization)
  + [Label expansion](/versions/7.6.1/reference/be/common-definitions#label-expansion)
  + [Typical attributes for most rules](/versions/7.6.1/reference/be/common-definitions#typical-attributes)
  + [Common attributes for all rules](/versions/7.6.1/reference/be/common-definitions#common-attributes)
  + [Common attributes for tests](/versions/7.6.1/reference/be/common-definitions#common-attributes-tests)
  + [Common attributes for binaries](/versions/7.6.1/reference/be/common-definitions#common-attributes-binaries)
  + [Configurable attributes](/versions/7.6.1/reference/be/common-definitions#configurable-attributes)
  + [Implicit output targets](/versions/7.6.1/reference/be/common-definitions#implicit-outputs)
* ["Make" variables](/versions/7.6.1/reference/be/make-variables)
  + [Use](/versions/7.6.1/reference/be/make-variables#use)

## Functions

* [package](/versions/7.6.1/reference/be/functions#package)
* [package\_group](/versions/7.6.1/reference/be/functions#package_group)
* [exports\_files](/versions/7.6.1/reference/be/functions#exports_files)
* [glob](/versions/7.6.1/reference/be/functions#glob)
* [select](/versions/7.6.1/reference/be/functions#select)
* [workspace](/versions/7.6.1/rules/lib/globals/workspace#workspace)

## Rules

Native rules ship with the Bazel binary and do not require a `load` statement.
Native rules are available globally in BUILD files. In .bzl files, you can find them in
the `native` module.
For non-native Starlark rules that ship separately from Bazel, see the list of
[recommended rules](/versions/7.6.1/rules/rules#recommended-rules).

### Language-specific native rules

| Language | Binary rules | Library rules | Test rules | Other rules |
| --- | --- | --- | --- | --- |
| Android | [android\_binary](android#android_binary) | [aar\_import](android#aar_import)   [android\_library](android#android_library) | [android\_instrumentation\_test](android#android_instrumentation_test)   [android\_local\_test](android#android_local_test) | [android\_device](android#android_device)   [android\_ndk\_repository](android#android_ndk_repository)   [android\_sdk\_repository](android#android_sdk_repository) |
| C / C++ | [cc\_binary](c-cpp#cc_binary) | [cc\_import](c-cpp#cc_import)   [cc\_library](c-cpp#cc_library)   [cc\_proto\_library](c-cpp#cc_proto_library)   [cc\_shared\_library](c-cpp#cc_shared_library)   [cc\_static\_library](c-cpp#cc_static_library)   [fdo\_prefetch\_hints](c-cpp#fdo_prefetch_hints)   [fdo\_profile](c-cpp#fdo_profile)   [memprof\_profile](c-cpp#memprof_profile)   [propeller\_optimize](c-cpp#propeller_optimize) | [cc\_test](c-cpp#cc_test) | [cc\_toolchain](c-cpp#cc_toolchain)   [cc\_toolchain\_suite](c-cpp#cc_toolchain_suite) |
| Java | [java\_binary](java#java_binary) | [java\_import](java#java_import)   [java\_library](java#java_library)   [java\_lite\_proto\_library](java#java_lite_proto_library)   [java\_proto\_library](java#java_proto_library) | [java\_test](java#java_test) | [java\_package\_configuration](java#java_package_configuration)   [java\_plugin](java#java_plugin)   [java\_runtime](java#java_runtime)   [java\_toolchain](java#java_toolchain) |
| Objective-C |  | [j2objc\_library](objective-c#j2objc_library)   [objc\_import](objective-c#objc_import)   [objc\_library](objective-c#objc_library) |  | [available\_xcodes](objective-c#available_xcodes)   [xcode\_config](objective-c#xcode_config)   [xcode\_version](objective-c#xcode_version) |
| Protocol Buffer |  | [proto\_lang\_toolchain](protocol-buffer#proto_lang_toolchain)   [proto\_library](protocol-buffer#proto_library) |  |  |
| Python | [py\_binary](python#py_binary) | [py\_library](python#py_library) | [py\_test](python#py_test) | [py\_runtime](python#py_runtime) |
| Shell | [sh\_binary](shell#sh_binary) | [sh\_library](shell#sh_library) | [sh\_test](shell#sh_test) |  |

### Language-agnostic native rules

| Family | Rules |
| --- | --- |
| Extra Actions | * [action\_listener](extra-actions#action_listener)* [extra\_action](extra-actions#extra_action) |
| General | * [alias](general#alias)* [config\_setting](general#config_setting)* [filegroup](general#filegroup)* [genquery](general#genquery)* [genrule](general#genrule)* [starlark\_doc\_extract](general#starlark_doc_extract)* [test\_suite](general#test_suite) |
| Platforms and Toolchains | * [constraint\_setting](platforms-and-toolchains#constraint_setting)* [constraint\_value](platforms-and-toolchains#constraint_value)* [platform](platforms-and-toolchains#platform)* [toolchain](platforms-and-toolchains#toolchain)* [toolchain\_type](platforms-and-toolchains#toolchain_type) |
| Workspace | * [bind](workspace#bind)* [local\_repository](workspace#local_repository)* [new\_local\_repository](workspace#new_local_repository) |